Bug#909150: glib2.0: intermittent FTBFS on armel: mainloop-test: segmentation fault

Simon McVittie smcv at debian.org
Tue Sep 18 23:14:46 BST 2018


Source: glib2.0
Version: 2.58.0-4
Severity: important

glib2.0 2.58.0-4 failed to build on the armel buildd:
https://buildd.debian.org/status/fetch.php?pkg=glib2.0&arch=armel&ver=2.58.0-4&stamp=1537225902&raw=0
> FAIL mainloop-test (exit status: 139)

(That's a segmentation fault, with no other output.)

I was able to reproduce this failure on the armel porterbox, abel, by
doing a build (which succeeded) and then running:

bash -euc 'for i in `seq 1 1000`; do time debian/build/deb/tests/mainloop-test; done'

You can in fact also run this test as an installed binary without needing
to build it: it's /usr/lib/glib2.0/installed-tests/glib/mainloop-test
in the libglib2.0-tests package.

On my 81st attempt on abel, the test segfaulted.

% debian/build/deb/libtool --mode=execute gdb debian/build/deb/tests/mainloop-test core
...
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00459634 in cleanup_crawlers (context=0xb5101218) at ../../../../tests/mainloop-test.c:364
364           if (g_source_get_context (crawler_array->pdata[i]) == context)
[Current thread is 1 (Thread 0xb5afe460 (LWP 29988))]
(gdb) thread apply all bt

Thread 2 (Thread 0xb6f503e0 (LWP 29972)):
#0  0xb6d2b750 in ?? () from /lib/arm-linux-gnueabi/libc.so.6
#1  0x00459c8c in adder_callback (source=<optimized out>, condition=<optimized out>, data=0x0)
    at ../../../../tests/mainloop-test.c:122
#2  0x00000010 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0xb5afe460 (LWP 29988)):
#0  0x00459634 in cleanup_crawlers (context=0xb5101218) at ../../../../tests/mainloop-test.c:364
#1  adder_thread (data=<optimized out>) at ../../../../tests/mainloop-test.c:192
#2  0xb6e87628 in g_thread_proxy (data=0x2416c60) at ../../../../glib/gthread.c:784
#3  0xb6c1f1ac in start_thread () from /lib/arm-linux-gnueabi/libpthread.so.0
#4  0xb6d96ca8 in ?? () from /lib/arm-linux-gnueabi/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
...
(gdb) p *crawler_array
$1 = {pdata = 0x2415178, len = 0}
(gdb) p i
$2 = 0
(gdb) p (GSource *) crawler_array->pdata[0]
$5 = (GSource *) 0x2415190
(gdb) p *(GSource *) crawler_array->pdata[0]
$6 = {callback_data = 0x2415160, callback_funcs = 0x0, source_funcs = 0xffffffff, ref_count = 4294967295,
  context = 0x0, priority = 0, flags = 37835528, source_id = 0, poll_fds = 0xb78731fa, prev = 0x182, next = 0x0,
  name = 0x0, priv = 0x0}
(gdb) p *context
$8 = {mutex = {p = 0x0, i = {0, 0}}, cond = {p = 0x0, i = {1, 0}}, owner = 0x0, owner_count = 0, waiters = 0x0, 
  ref_count = 1, sources = 0xb6302078, pending_dispatches = 0xb6302e50, timeout = 1, next_id = 108, 
  source_lists = 0xb6303790, in_check_or_prepare = 0, poll_records = 0xb6303740, n_poll_records = 1, 
  cached_poll_array = 0xb51030e8, cached_poll_array_size = 2, wakeup = 0xb6301160, wake_up_rec = {fd = 21, 
    events = 1, revents = 0}, poll_changed = 1, poll_func = 0xb6e6cc78 <g_poll>, time = 1660937509354, 
  time_is_fresh = 1}

I'm not sure what is going on here; the stack traces don't look complete.
The last functional change to this test was in 2013.

    smcv



More information about the pkg-gnome-maintainers mailing list