ostreedev / ostree

Operating system and container binary deployment and upgrades
https://ostreedev.github.io/ostree/
Other
1.3k stars 296 forks source link

hang in pull #496

Closed cgwalters closed 8 years ago

cgwalters commented 8 years ago

Got this locally once with https://github.com/ostreedev/ostree/pull/495 running tests/test-admin-deploy-syslinux.sh, but it doesn't seem to reproduce easily right now.

(gdb) t a a bt

Thread 3 (Thread 0x7f222b183700 (LWP 26148)):
#0  0x00007f222fdbbc4d in poll () at /lib64/libc.so.6
#1  0x00007f223059da06 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#2  0x00007f223059dd92 in g_main_loop_run () at /lib64/libglib-2.0.so.0
#3  0x00007f2231c4da41 in ostree_fetcher_session_thread (data=0x218e980) at src/libostree/ostree-fetcher.c:506
#4  0x00007f22305c3cf5 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#5  0x00007f223008e5ba in start_thread () at /lib64/libpthread.so.0
#6  0x00007f222fdc77cd in clone () at /lib64/libc.so.6

Thread 2 (Thread 0x7f222a982700 (LWP 26077)):
#0  0x00007f222fdbbc4d in poll () at /lib64/libc.so.6
#1  0x00007f223059da06 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#2  0x00007f223059db1c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#3  0x00007f223059db61 in glib_worker_main () at /lib64/libglib-2.0.so.0
#4  0x00007f22305c3cf5 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#5  0x00007f223008e5ba in start_thread () at /lib64/libpthread.so.0
#6  0x00007f222fdc77cd in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f22321f0900 (LWP 26064)):
#0  0x00007f223008f6ad in pthread_join () at /lib64/libpthread.so.0
#1  0x00007f22305e1a67 in g_system_thread_wait () at /lib64/libglib-2.0.so.0
#2  0x00007f22305c415a in g_thread_join () at /lib64/libglib-2.0.so.0
#3  0x00007f2231c4e903 in _ostree_fetcher_finalize (object=0x21b94d0) at src/libostree/ostree-fetcher.c:575
#4  0x00007f2230876117 in g_object_unref () at /lib64/libgobject-2.0.so.0
#5  0x00007f2231c2b75d in ostree_repo_pull_with_options (self=<optimized out>, remote_name_or_baseurl=<optimized out>, options=<optimized out>, progress=progress@entry=0x0, cancellable=cancellable@entry=0x0, error=error@entry=0x7ffc5f2f3458)
    at src/libostree/ostree-repo-pull.c:3026
#6  0x0000000000419f91 in ostree_builtin_pull (argc=<optimized out>, argv=<optimized out>, cancellable=0x0, error=0x7ffc5f2f3458) at src/ostree/ot-builtin-pull.c:260
#7  0x0000000000412dbf in ostree_run (argc=<optimized out>, argc@entry=6, argv=<optimized out>, argv@entry=0x7ffc5f2f35a8, commands=commands@entry=0x62bfc0 <commands>, res_error=res_error@entry=0x7ffc5f2f34a8) at src/ostree/ot-main.c:209
#8  0x000000000040b58f in main (argc=6, argv=0x7ffc5f2f35a8) at src/ostree/main.c:78
(gdb) up
#1  0x00007f22305e1a67 in g_system_thread_wait () from /lib64/libglib-2.0.so.0
(gdb) 
#2  0x00007f22305c415a in g_thread_join () from /lib64/libglib-2.0.so.0
(gdb) 
#3  0x00007f2231c4e903 in _ostree_fetcher_finalize (object=0x21b94d0) at src/libostree/ostree-fetcher.c:575
575             g_thread_join (self->session_thread);
(gdb) p self->session_thread
$1 = (GThread *) 0x21b9ca0
(gdb) p *$
$2 = {func = 0x7f2231c4d990 <ostree_fetcher_session_thread>, data = 0x218e980, joinable = 1, priority = G_THREAD_PRIORITY_LOW}
(gdb) 
cgwalters commented 8 years ago

Yep, I got this again.

cgwalters commented 8 years ago

Seems to reproduce with 2016.9 too.

cgwalters commented 8 years ago

On this. Will post a patch soon.