Closed hadess closed 8 years ago
I think this is a dup of #373
@hadess can you try the patches in https://github.com/ostreedev/ostree/pull/383 too?
Do I need both the patches in the #383 PR and the libsoup changes?
Try with just #383 first.
After running the whole test suite, I get similar traces to this times 5 (either SIGBUS or SIGSEGV):
#0 0xb6be2244 in g_mutex_lock (mutex=mutex@entry=0x11111111) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gthread-posix.c:1337
#1 0xb6bb0382 in g_source_destroy_internal (source=0x13c6d0, context=0x11111111, have_lock=have_lock@entry=0) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:1159
#2 0xb6bb0874 in g_source_destroy (source=<optimized out>) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:1227
#3 0xb6dd3042 in soup_session_dispose (object=0x4a098) at soup-session.c:309
#4 0xb6c609ce in g_object_unref (_object=0x4a098) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./gobject/gobject.c:3133
#5 0xb6e6c00e in ostree_fetcher_session_thread (data=0x5a818) at src/libostree/ostree-fetcher.c:486
#6 0xb6bccffa in g_thread_proxy (data=0x50d20) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gthread.c:764
#7 0xb6e94f88 in start_thread (arg=0xb627c360) at pthread_create.c:311
#8 0xb6aa21fc in ?? () at ../ports/sysdeps/unix/sysv/linux/arm/nptl/../clone.S:92 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
That was with ostree git master.
Interesting. The patches from #383 definitely made things more reliable for me (x86_64/CentOS7+ CAHC).
So, libsoup gnome-3-14 + patch from GNOME bz, and the ostree master, and it's not working any better from what I can tell.
Thread 3 (Thread 0xb591d360 (LWP 27436)):
#0 0xb6ad79d0 in poll () at ../sysdeps/unix/syscall-template.S:81
#1 0xb6bee39e in g_main_context_poll (priority=2147483647, n_fds=2, fds=0x288a60, timeout=60000, context=0x302a00) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:4076
#2 g_main_context_iterate (context=0x302a00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:3776
#3 0xb6bee668 in g_main_loop_run (loop=0x302e48) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:3975
#4 0xb6ea7fdc in ostree_fetcher_session_thread (data=0x5cc70) at src/libostree/ostree-fetcher.c:478
#5 0xb6c08ffa in g_thread_proxy (data=0x50f50) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gthread.c:764
#6 0xb6ed0f88 in start_thread (arg=0xb591d360) at pthread_create.c:311
#7 0xb6ade1fc in ?? () at ../ports/sysdeps/unix/sysv/linux/arm/nptl/../clone.S:92 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Thread 2 (Thread 0xb6f93000 (LWP 27434)):
#0 0xb6ad79d0 in poll () at ../sysdeps/unix/syscall-template.S:81
#1 0xb6bee39e in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x682f8, timeout=-1, context=0x1ef400) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:4076
#2 g_main_context_iterate (context=context@entry=0x1ef400, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:3776
#3 0xb6bee44c in g_main_context_iteration (context=context@entry=0x1ef400, may_block=may_block@entry=1) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:3842
#4 0xb6ea9282 in _ostree_fetcher_request_uri_to_membuf (fetcher=0x502c0, uri=uri@entry=0x56000, add_nul=add_nul@entry=0, allow_noent=allow_noent@entry=1, out_contents=out_contents@entry=0xbeedddf0,
max_size=max_size@entry=10485760, cancellable=0x0, error=error@entry=0xbeede024) at src/libostree/ostree-fetcher.c:1184
#5 0xb6e93158 in fetch_uri_contents_membuf_sync (pull_data=<optimized out>, pull_data=<optimized out>, error=0xbeede024, cancellable=<optimized out>, out_contents=0xbeedddf0, allow_noent=1, add_nul=0,
uri=0x56000) at src/libostree/ostree-repo-pull.c:374
#6 request_static_delta_superblock_sync (error=0xbeede024, cancellable=<optimized out>, out_delta_superblock=<synthetic pointer>,
to_revision=0x175930 "b7f70a14a776b7bd3fc2d78fee80a8321ecceb0170c292ee8de390e69d5cf030", from_revision=0x0, pull_data=0xbeedde30) at src/libostree/ostree-repo-pull.c:1436
#7 ostree_repo_pull_with_options (self=self@entry=0x59078, remote_name_or_baseurl=remote_name_or_baseurl@entry=0x58c68 "R1", options=<optimized out>, progress=progress@entry=0x0,
cancellable=cancellable@entry=0x0, error=error@entry=0xbeede024) at src/libostree/ostree-repo-pull.c:2710
#8 0x000222c0 in ostree_builtin_pull (argc=2, argv=0xbeede1b4, cancellable=0x0, error=0xbeede024) at src/ostree/ot-builtin-pull.c:260
#9 0x0001d8ec in ostree_run (argc=3, argc@entry=4, argv=argv@entry=0xbeede1b4, commands=commands@entry=0x3cc80 <commands>, res_error=res_error@entry=0xbeede04c) at src/ostree/ot-main.c:209
#10 0x000189ee in main (argc=4, argv=0xbeede1b4) at src/ostree/main.c:78
Thread 1 (Thread 0xb62eb360 (LWP 27435)):
#0 0x0041e348 in ?? ()
#1 0xb6bec1e2 in g_source_unref_internal (source=0x1ef4f8, context=0x0, have_lock=have_lock@entry=0) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:2016
#2 0xb6bed296 in g_source_unref (source=<optimized out>) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:2063
#3 0xb6e0f048 in soup_session_dispose (object=0x4b898) at soup-session.c:310
#4 0xb6c9c9ce in g_object_unref (_object=0x4b898) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./gobject/gobject.c:3133
#5 0xb6ea800e in ostree_fetcher_session_thread (data=0x5cc18) at src/libostree/ostree-fetcher.c:486
#6 0xb6c08ffa in g_thread_proxy (data=0x50f20) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gthread.c:764
#7 0xb6ed0f88 in start_thread (arg=0xb62eb360) at pthread_create.c:311
#8 0xb6ade1fc in ?? () at ../ports/sysdeps/unix/sysv/linux/arm/nptl/../clone.S:92 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Sorry, I didn't install libsoup properly (the /usr/lib/ files are namespaced as well). So, with libsoup from gnome-3-14
with the patch added on top.
It hangs much sooner in the test suite, when running /home/chip/ostree/tests/.libs/lt-test-pull-c -k --tap
:
#0 0xb690f9d0 in poll () at ../sysdeps/unix/syscall-template.S:81
#1 0xb69a939e in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x557a0, timeout=-1, context=0x229038) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:4076
#2 g_main_context_iterate (context=context@entry=0x229038, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:3776
#3 0xb69a944c in g_main_context_iteration (context=context@entry=0x229038, may_block=may_block@entry=1) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:3842
#4 0xb6f9e2a2 in _ostree_fetcher_request_uri_to_membuf (fetcher=0x32830, uri=uri@entry=0x37f60, add_nul=add_nul@entry=0, allow_noent=allow_noent@entry=1, out_contents=0xbebd3d98, max_size=10485760,
cancellable=0x0, error=0xbebd3fb4) at src/libostree/ostree-fetcher.c:1184
#5 0xb6f88a5c in fetch_uri_contents_membuf_sync (pull_data=0xbebd3dd8, pull_data=0xbebd3dd8, error=0xbebd3fb4, cancellable=0x0, out_contents=0xbebd3d98, allow_noent=1, add_nul=0, uri=0x37f60)
at src/libostree/ostree-repo-pull.c:374
#6 ostree_repo_pull_with_options (self=self@entry=0x39078, remote_name_or_baseurl=remote_name_or_baseurl@entry=0x114f0 "origin", options=options@entry=0x328c0, progress=progress@entry=0x0,
cancellable=cancellable@entry=0x0, error=error@entry=0xbebd3fb4) at src/libostree/ostree-repo-pull.c:2431
#7 0xb6f7fb5a in ostree_repo_pull_one_dir (self=0x39078, remote_name=remote_name@entry=0x114f0 "origin", dir_to_pull=dir_to_pull@entry=0x0, refs_to_fetch=refs_to_fetch@entry=0xbebd3fb8,
flags=flags@entry=OSTREE_REPO_PULL_FLAGS_NONE, progress=progress@entry=0x0, cancellable=cancellable@entry=0x0, error=error@entry=0xbebd3fb4) at src/libostree/ostree-repo.c:3791
#8 0xb6f7fba0 in ostree_repo_pull (self=<optimized out>, remote_name=remote_name@entry=0x114f0 "origin", refs_to_fetch=refs_to_fetch@entry=0xbebd3fb8, flags=flags@entry=OSTREE_REPO_PULL_FLAGS_NONE,
progress=progress@entry=0x0, cancellable=cancellable@entry=0x0, error=error@entry=0xbebd3fb4) at src/libostree/ostree-repo.c:3749
#9 0x00011120 in test_pull_multi_nochange (data=0xbebd414c) at tests/test-pull-c.c:77
#10 0xb69c315e in test_case_run (tc=0x32a18) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gtestutils.c:2059
#11 g_test_run_suite_internal (suite=suite@entry=0x4d930, path=<optimized out>) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gtestutils.c:2120
#12 0xb69c327c in g_test_run_suite_internal (suite=suite@entry=0x4d940, path=<optimized out>, path@entry=0xb6a12e08 "") at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gtestutils.c:2131
#13 0xb69c3508 in g_test_run_suite (suite=0x4d940) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gtestutils.c:2184
#14 0xb69c3556 in g_test_run () at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gtestutils.c:1488
#15 0x00010f68 in main (argc=1, argv=0xbebd42c4) at tests/test-pull-c.c:129
And just to make sure:
$ cat /proc/7333/smaps | grep libsoup
b6d7f000-b6de7000 r-xp 00000000 00:0f 428638 /usr/lib/arm-linux-gnueabihf/libsoup-2.4.so.1.7.0
b6de7000-b6df6000 ---p 00068000 00:0f 428638 /usr/lib/arm-linux-gnueabihf/libsoup-2.4.so.1.7.0
b6df6000-b6e05000 rw-p 00067000 00:0f 428638 /usr/lib/arm-linux-gnueabihf/libsoup-2.4.so.1.7.0
$ ls -l /usr/lib/arm-linux-gnueabihf/libsoup-2.4.so.1.7.0
-rwxr-xr-x 1 root root 1907800 Jul 11 19:19 /usr/lib/arm-linux-gnueabihf/libsoup-2.4.so.1.7.0
$ date
Mon 11 Jul 19:39:12 UTC 2016
That really was the library compiled before I ran the test suite.
I'll try running against libsoup master + that patch now, if the dependencies allow me.
OK, libsoup master + the patch gets stuck much further, running test-remote-gpg-import.sh
I think:
chip 21496 0.0 2.0 27300 10300 pts/0 Sl+ 20:02 0:00 ostree --repo=repo pull R1:main
Thread 2 (Thread 0xb6235360 (LWP 21497)):
#0 0xb6abc9d0 in poll () at ../sysdeps/unix/syscall-template.S:81
#1 0xb6bd339e in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x7f759748, timeout=-1, context=0x7f6504f8) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:4076
#2 g_main_context_iterate (context=0x7f6504f8, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:3776
#3 0xb6bd3668 in g_main_loop_run (loop=0x7f650ed8) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:3975
#4 0xb6e94fdc in ostree_fetcher_session_thread (data=0x7f63e418) at src/libostree/ostree-fetcher.c:478
#5 0xb6bedffa in g_thread_proxy (data=0x7f648120) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gthread.c:764
#6 0xb6ebdf88 in start_thread (arg=0xb6235360) at pthread_create.c:311
#7 0xb6ac31fc in ?? () at ../ports/sysdeps/unix/sysv/linux/arm/nptl/../clone.S:92 from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Thread 1 (Thread 0xb6f18000 (LWP 21496)):
#0 0xb6abc9d0 in poll () at ../sysdeps/unix/syscall-template.S:81
#1 0xb6bd339e in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x7f7eabf0, timeout=-1, context=0x7f651fa0) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:4076
#2 g_main_context_iterate (context=context@entry=0x7f651fa0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:3776
#3 0xb6bd344c in g_main_context_iteration (context=context@entry=0x7f651fa0, may_block=may_block@entry=1) at /build/glib2.0-5Ukv2U/glib2.0-2.42.1/./glib/gmain.c:3842
#4 0xb6e96282 in _ostree_fetcher_request_uri_to_membuf (fetcher=0x7f650960, uri=uri@entry=0x7f652b20, add_nul=add_nul@entry=0, allow_noent=allow_noent@entry=1, out_contents=0xbea8dde0, max_size=10485760,
cancellable=0x0, error=0xbea8e020) at src/libostree/ostree-fetcher.c:1184
#5 0xb6e80a3c in fetch_uri_contents_membuf_sync (pull_data=0xbea8de20, pull_data=0xbea8de20, error=0xbea8e020, cancellable=0x0, out_contents=0xbea8dde0, allow_noent=1, add_nul=0, uri=0x7f652b20)
at src/libostree/ostree-repo-pull.c:374
#6 ostree_repo_pull_with_options (self=self@entry=0x7f64e078, remote_name_or_baseurl=0x7f64f788 "R1", options=<optimized out>, progress=progress@entry=0x0, cancellable=cancellable@entry=0x0,
error=error@entry=0xbea8e020) at src/libostree/ostree-repo-pull.c:2431
#7 0x7f6199e2 in ostree_builtin_pull (argc=2, argv=0xbea8e1c4, cancellable=<optimized out>, error=0xbea8e020) at src/ostree/ot-builtin-pull.c:260
#8 0x7f6148cc in ostree_run (argc=3, argv=0xbea8e1c4, commands=0x7f634008 <commands>, res_error=0xbea8e050) at src/ostree/ot-main.c:209
#9 0x7f60f146 in main (argc=4, argv=0xbea8e1c4) at src/ostree/main.c:78
But the SIGBUS errors in test-basic.sh
are gone. I'll try to bisect, so we can choose a good minimal requirement, or backport the fixes.
It crashes without the libsoup patch on top of master, and I still see random "hangs" as above, with the application being stuck waiting with the patch applied (also on top of master).
Following on from #378
During the tests, apart from the test failures, which I'll look at again later on, there are a number of crashers, either SIGBUS, or SIGSEGV ones.
From the 9 core dumps I gathered running the test suite, I found those unique SIGBUS ones:
And a couple of SEGVs too:
The packages are:
They all seem related to a refcounting/access after free issue. libglnx bug?