← Back to team overview

debcrafters-packages team mailing list archive

[Bug 2062118] Re: autopkgtests fail on s390x (segfault)

 

= Oracular verification: passed =

Baseline results
----------------

ubuntu@hwe0003:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 24.10
Release:	24.10
Codename:	oracular

ubuntu@hwe0003:~$ dpkg -s libtraceevent-dev | grep Version
Version: 1:1.8.2-1ubuntu3


ubuntu@hwe0003:~$ pull-lp-source libtracefs questing
Found libtracefs 1.8.0-1ubuntu1 in questing
Downloading libtracefs_1.8.0-1ubuntu1.dsc from ports.ubuntu.com (0.002 MiB)
[=====================================================>]100%
Good signature by Lukas Märdian <slyon@xxxxxxxxxx> (0xBF7DB622B303AC8B)

NOTICE: 'libtracefs' packaging is maintained in the 'Git' version control system at:
 https://salsa.debian.org/sudip/libtracefs.git

Please use:
 $ git clone https://salsa.debian.org/sudip/libtracefs.git
to retrieve the latest (possibly unreleased) updates to the package.

Downloading libtracefs_1.8.0.orig.tar.xz from ports.ubuntu.com (0.166 MiB)
[=====================================================>]100%
Downloading libtracefs_1.8.0-1ubuntu1.debian.tar.xz from ports.ubuntu.com (0.008 MiB)
[=====================================================>]100%


ubuntu@hwe0003:~$ cd libtracefs-1.8.0/
ubuntu@hwe0003:~/libtracefs-1.8.0$ make
  DESCEND            src libtracefs.so
  COMPILE FPIC       tracefs-utils.o
  COMPILE FPIC       tracefs-instance.o
  COMPILE FPIC       tracefs-events.o
  COMPILE FPIC       tracefs-tools.o
  COMPILE FPIC       tracefs-marker.o
  COMPILE FPIC       tracefs-kprobes.o
  COMPILE FPIC       tracefs-hist.o
  COMPILE FPIC       tracefs-stats.o
  COMPILE FPIC       tracefs-filter.o
  COMPILE FPIC       tracefs-dynevents.o
  COMPILE FPIC       tracefs-eprobes.o
  COMPILE FPIC       tracefs-uprobes.o
  COMPILE FPIC       tracefs-record.o
  COMPILE FPIC       tracefs-mmap.o
  COMPILE FPIC       tracefs-vsock.o
  COMPILE FPIC       tracefs-perf.o
  COMPILE FPIC       sqlhist-lex.o
  COMPILE FPIC       sqlhist.tab.o
  COMPILE FPIC       tracefs-sqlhist.o
  COMPILE SHARED LIB libtracefs.so.1.8.0
  DESCEND            src libtracefs.a
  BUILD STATIC LIB   libtracefs.a
  UPDATE             build_prefix
  UPDATE             tfs_version.h
  DESCEND            utest test
  COMPILE FPIC       trace-utest.o
  COMPILE FPIC       tracefs-utest.o
tracefs-utest.c:2550:13: warning: ‘test_uprobes’ defined but not used [-Wunused-function]
 2550 | static void test_uprobes(void)
      |             ^~~~~~~~~~~~
  BUILD              trace-utest


ubuntu@hwe0003:~/libtracefs-1.8.0$ sudo utest/trace-utest 


     CUnit - A unit testing framework for C - Version 2.1-3
     http://cunit.sourceforge.net/

Memory mapped buffers not supported

Suite: tracefs library
  Test: Test tracefs/debugfs mounting ...passed
  Test: trace cpu read ...FAILED
    1. tracefs-utest.c:1261  - cnt == expect
    2. tracefs-utest.c:1261  - cnt == expect
    3. tracefs-utest.c:1261  - cnt == expect
    4. tracefs-utest.c:1261  - cnt == expect
    5. tracefs-utest.c:1261  - cnt == expect
    6. tracefs-utest.c:1261  - cnt == expect
    7. tracefs-utest.c:1261  - cnt == expect
    8. tracefs-utest.c:1261  - cnt == expect
    9. tracefs-utest.c:1261  - cnt == expect
    10. tracefs-utest.c:1261  - cnt == expect
  Test: trace cpu read_buf_percent ...passed
  Test: trace cpu pipe ...FAILED
    1. tracefs-utest.c:1935  - cnt == expect
    2. tracefs-utest.c:1935  - cnt == expect
    3. tracefs-utest.c:1935  - cnt == expect
    4. tracefs-utest.c:1935  - cnt == expect
    5. tracefs-utest.c:1935  - cnt == expect
    6. tracefs-utest.c:1935  - cnt == expect
    7. tracefs-utest.c:1935  - cnt == expect
    8. tracefs-utest.c:1935  - cnt == expect
    9. tracefs-utest.c:1935  - cnt == expect
    10. tracefs-utest.c:1935  - cnt == expect
  Test: trace pid events filter ...Segmentation fault

Results with package in -proposed
---------------------------------

ubuntu@hwe0003:~/libtracefs-1.8.0$ dpkg -s libtraceevent-dev | grep Version
Version: 1:1.8.2-1ubuntu3.1


ubuntu@hwe0003:~/libtracefs-1.8.0$ make && make test
  DESCEND            src libtracefs.so
  DESCEND            src libtracefs.a
  BUILD STATIC LIB   libtracefs.a
  DESCEND            src libtracefs.a
  BUILD STATIC LIB   libtracefs.a
  DESCEND            utest test
  BUILD              trace-utest


ubuntu@hwe0003:~/libtracefs-1.8.0$ sudo utest/trace-utest 


     CUnit - A unit testing framework for C - Version 2.1-3
     http://cunit.sourceforge.net/

Memory mapped buffers not supported

Suite: tracefs library
  Test: Test tracefs/debugfs mounting ...passed
  Test: trace cpu read ...passed
  Test: trace cpu read_buf_percent ...passed
  Test: trace cpu pipe ...passed
  Test: trace pid events filter ...passed
  Test: trace pid function filter ...passed
  Test: trace sql ...passed
  Test: trace sql trace onmax ...passed
  Test: trace sql trace onchange ...passed
  Test: trace sql snapshot onmax ...passed
  Test: trace sql snapshot onchange ...passed
  Test: trace sql save onmax ...passed
  Test: trace sql save onchange ...passed
  Test: trace sql trace and snapshot onmax ...passed
  Test: trace sql trace and snapshot onchange ...passed
  Test: tracing file / directory APIs ...passed
  Test: instance file / directory APIs ...passed
  Test: instance file descriptor ...passed
  Test: instance reset ...passed
  Test: systems and events APIs ...passed
  Test: tracefs_iterate_snapshot_events API ...passed
  Test: tracefs_iterate_raw_events API ...passed
  Test: Follow events ...passed
  Test: Follow events clear ...FAILED
    1. tracefs-utest.c:1708  - fdata.missed_hit > 0
    2. tracefs-utest.c:1708  - fdata.missed_hit > 0
  Test: tracefs_tracers API ...passed
  Test: tracefs_local events API ...passed
  Test: tracefs_instances_walk API ...passed
  Test: tracefs_get_clock API ...passed
  Test: tracing on / off ...passed
  Test: tracing options ...passed
  Test: custom system directory ...passed
  Test: ftrace marker ...passed
  Test: kprobes ...passed
  Test: synthetic events ...passed
  Test: eprobes ...passed

Run Summary:    Type    Total      Ran   Passed Failed Inactive
              suites        1        1      n/a      0        0
               tests       35       35       34      1        0
             asserts 14843613 14843613 14843611      2      n/a

Elapsed time =   21.182 seconds

** Tags removed: verification-needed verification-needed-oracular
** Tags added: verification-done verification-done-oracular

-- 
You received this bug notification because you are a member of
Debcrafters packages, which is subscribed to libtraceevent in Ubuntu.
https://bugs.launchpad.net/bugs/2062118

Title:
  autopkgtests fail on s390x (segfault)

Status in Ubuntu on IBM z Systems:
  In Progress
Status in libtraceevent package in Ubuntu:
  Fix Released
Status in libtracefs package in Ubuntu:
  Fix Released
Status in libtraceevent source package in Noble:
  Fix Committed
Status in libtracefs source package in Noble:
  Confirmed
Status in libtraceevent source package in Oracular:
  Fix Committed
Status in libtracefs source package in Oracular:
  Confirmed
Status in libtraceevent source package in Plucky:
  Fix Released
Status in libtracefs source package in Plucky:
  Fix Released

Bug description:
  SRU Justification:

  [ Impact ]

   * This failure on s390x is primarily because tep_alloc sets file
     endianness to LITTLE_ENDIAN by default (with no checks)

   * The changes are already accepted into plucky and upstream:
     
  https://code.launchpad.net/~r41k0u/ubuntu/+source/libtraceevent/+git/libtraceevent/+merge/477042

   * This will fix autopkgtest segfaults of libtracefs on oracular and
  noble for s390x.

  [ Test Plan ]

   * Clone libtracefs (oracular-devel or noble-devel), compile it and
  make the tests (make && make test).

   * Then run the tests as root (utest/trace-utest), on an s390x machine
  (running oracular or noble)

   * You can test the fix by installing the patched version of
  libtraceevent for the release you are testing and trying the
  libtracefs tests again.

  [ Where problems could occur ]

   * This is not likely to break anything, as we can make a safe assumption
     to set file_bigendian to the same value as host_bigendian by default.
     If these are different, the user can set it using event-parse-api

   * In any case, this change seems logical. This does not affect any other
     (little-endian) architecture, and I think this won't be breaking any
     workarounds people did around this problem.

   * But in case we have some regressions as a result of this change,
     then there surely would be some workaround to this in a patch,
     which can then be reverted.

  [ Other Info ]

   * This does not fix anything in libtraceevent but does fix the tests
     for libtracefs on s390x.
     But I have opened this bug against libtraceevent.

   * I see a workaround for this problem in the last patch in d/p/series,
     but this change does not affect it
  __________

  As part of the added QA to libtracefs it was found that it triggers a segfault on s390x.
  This isn't just a test failing, it seems this is still deeply broken on s390x.

  Either way, while in the time pressure of the noble release the
  decision was simplified like "The tests didn't make it worse, just now
  we know" and continued (To not leave these platforms behind later
  unable to add it, albeit knowing it is still incomplete for now).

  It does not mean that we can ignore them for too long and certainly
  need to work on completing that into being fully functional in tests
  and real usage. Hence we create this spin off bug from the MIR work in
  bug 2051925 for tracking the further efforts.

  Example test log:
  https://autopkgtest.ubuntu.com/results/autopkgtest-noble/noble/s390x/libt/libtracefs/20240417_184123_8ab96@/log.gz

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-z-systems/+bug/2062118/+subscriptions