[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#909242: Xvfb: segfaults on mips during gtk+3.0 build-time tests



Package: xvfb
Version: 2:1.20.1-2
Severity: important
X-Debbugs-Cc: debian-mips@lists.debian.org
User: debian-mips@lists.debian.org
Usertags: mips

My recent gtk+3.0 upload to experimental failed many of its build-time
tests on mips. The tests could not connect to the Xvfb server run by the
upstream build system, which later crashed with a segmentation fault.

https://buildd.debian.org/status/fetch.php?pkg=gtk%2B3.0&arch=mips&ver=3.24.1-1&stamp=1537406479&file=log

I can reproduce this reliably on the mips porterbox, minkus, by running
Xvfb in a schroot with the options shown below.

Core was generated by `Xvfb -ac -noreset -screen 0 1024x768x16 :1 -nolisten tcp -auth /dev/null'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x77a7c3f8 in ?? () from /usr/lib/mips-linux-gnu/libunwind.so.8
(gdb) bt
#0  0x77a7c3f8 in ?? () from /usr/lib/mips-linux-gnu/libunwind.so.8
#1  0x77a7c99c in _ULmips_is_signal_frame () from /usr/lib/mips-linux-gnu/libunwind.so.8
#2  0x77a7cbb0 in _ULmips_handle_signal_frame () from /usr/lib/mips-linux-gnu/libunwind.so.8
#3  0x77a7d01c in _ULmips_step () from /usr/lib/mips-linux-gnu/libunwind.so.8
#4  0x55eaaff0 in xorg_backtrace () at ../../../../os/backtrace.c:72
#5  0x55eb0444 in OsSigHandler (signo=11, sip=0x7fd51fc8, unused=<optimized out>) at ../../../../os/osinit.c:135
#6  <signal handler called>
#7  0x77a7c3f8 in ?? () from /usr/lib/mips-linux-gnu/libunwind.so.8
#8  0x77a7c99c in _ULmips_is_signal_frame () from /usr/lib/mips-linux-gnu/libunwind.so.8
#9  0x77a7cbb0 in _ULmips_handle_signal_frame () from /usr/lib/mips-linux-gnu/libunwind.so.8
#10 0x77a7d01c in _ULmips_step () from /usr/lib/mips-linux-gnu/libunwind.so.8
#11 0x77a7a8f8 in unw_backtrace () from /usr/lib/mips-linux-gnu/libunwind.so.8
#12 0x55eb06b0 in OsInit () at ../../../../os/osinit.c:217
#13 0x55e4d708 in dix_main (argc=11, argv=0x7fd639e4, envp=<optimized out>) at ../../../../dix/main.c:154
#14 0x7759ccf8 in __libc_start_main () from /lib/mips-linux-gnu/libc.so.6
#15 0x55d28e34 in __start ()
Backtrace stopped: frame did not save the PC

Line 217 is this backtrace() call:

#ifdef HAVE_BACKTRACE
        /*
         * initialize the backtracer, since the ctor calls dlopen(), which
         * calls malloc(), which isn't signal-safe.
         */
        do {
            void *array;

            backtrace(&array, 1);                         <--- here
        } while (0);
#endif

so this might really be a libunwind bug (please reassign if you think so).
libunwind8:mips 1.2.1-8 was installed.

I thought this might be hardware-specific, but according to machines.cgi,
mips-sil-01 (where gtk+3.0 failed) and mips-manda-01 (where a libepoxy
build with the same xvfb and libunwind8 versions, also using Xvfb for
tests, succeeded) are matching hardware, a Rhino Labs UTM8.  minkus,
the porterbox where I reproduced this, is apparently an EdgeRouter Pro.

Xvfb is used in many packages' build-time tests, which for most
maintainers are the only evidence we have that our packages are at all
functional on mips, so it might be a good idea to work around this in
Xvfb by disabling backtrace support and/or libunwind on mips.

    smcv


Reply to: