Bug#746925: glib2.0 FTBFS on alpha and hppa (#746925)

Helge Deller deller at gmx.de
Tue Jun 9 17:05:51 UTC 2015


I did some further testing, and I have to agree that the async-splice-output-stream testcase is racy.
Sometimes it works on hppa (output via gdb):

Starting program: /build/glib2.0/glib2.0-2.44.1/debian/build/deb/gio/tests/.libs/lt-async-splice-output-stream
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/hppa-linux-gnu/libthread_db.so.1".
/async-splice/copy-chunks: OK
/async-splice/copy-chunks-threaded-input: [New Thread 0xf7ef0400 (LWP 29782)]
[New Thread 0xf76f0400 (LWP 29783)]
[New Thread 0xf6ef0400 (LWP 29784)]
OK
/async-splice/copy-chunks-threaded-output: OK
/async-splice/copy-chunks-threaded: OK
[Thread 0xf76f0400 (LWP 29783) exited]
[Thread 0xf7ef0400 (LWP 29782) exited]
[Thread 0xfa6fc3c0 (LWP 29769) exited]
[Inferior 1 (process 29769) exited normally]


and most times it simply fails:

Starting program: /build/glib2.0/glib2.0-2.44.1/debian/build/deb/gio/tests/.libs/lt-async-splice-output-stream
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/hppa-linux-gnu/libthread_db.so.1".
/async-splice/copy-chunks: OK
/async-splice/copy-chunks-threaded-input: [New Thread 0xf7ef0400 (LWP 29991)]
OK
/async-splice/copy-chunks-threaded-output:
Program received signal SIGSEGV, Segmentation fault.
0xf9f6321c in g_input_stream_is_closed (stream=0x2f746d70) at /build/glib2.0/glib2.0-2.44.1/./gio/ginputstream.c:1161
1161      g_return_val_if_fail (G_IS_INPUT_STREAM (stream), TRUE);
(gdb) bt
#0  0xf9f6321c in g_input_stream_is_closed (stream=0x2f746d70) at /build/glib2.0/glib2.0-2.44.1/./gio/ginputstream.c:1161
#1  0xf9f76348 in real_splice_async_complete_cb (task=0x1f490) at /build/glib2.0/glib2.0-2.44.1/./gio/goutputstream.c:1873
#2  0xf9f9b158 in g_task_return_now (task=0x1f090) at /build/glib2.0/glib2.0-2.44.1/./gio/gtask.c:1088
#3  0xf9f9b1b8 in complete_in_idle_cb (task=0x1f090, task at entry=<error reading variable: value has been optimized out>)
     at /build/glib2.0/glib2.0-2.44.1/./gio/gtask.c:1102
#4  0xf9a20468 in g_idle_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at /build/glib2.0/glib2.0-2.44.1/./glib/gmain.c:5393
#5  0xf9a24f1c in g_main_dispatch (context=0x1b448) at /build/glib2.0/glib2.0-2.44.1/./glib/gmain.c:3122
#6  g_main_context_dispatch (context=context at entry=0x1b448) at /build/glib2.0/glib2.0-2.44.1/./glib/gmain.c:3737
#7  0xf9a2539c in g_main_context_iterate (context=0x1b448, block=block at entry=1, dispatch=dispatch at entry=1, self=<optimized out>)
     at /build/glib2.0/glib2.0-2.44.1/./glib/gmain.c:3808
#8  0xf9a25874 in g_main_loop_run (loop=0x1c510) at /build/glib2.0/glib2.0-2.44.1/./glib/gmain.c:4002
#9  0x00011484 in test_copy_chunks_start (flags=<optimized out>) at /build/glib2.0/glib2.0-2.44.1/./gio/tests/async-splice-output-stream.c:162
#10 0xf9a55214 in test_case_run (tc=0x1ae30) at /build/glib2.0/glib2.0-2.44.1/./glib/gtestutils.c:2124
#11 g_test_run_suite_internal ()


My assumption is, that in the function test_copy_chunks_start() [in ./gio/tests/async-splice-output-stream.c]
new threads are started, but it's not ensured that everything is fully set up when g_output_stream_splice_async()
is called [inside the test_copy_chunks_start() function].

Helge



More information about the pkg-gnome-maintainers mailing list