Closed Bug 518244 Opened 15 years ago Closed 15 years ago

hang on submitting crash report

Categories

(Toolkit :: Crash Reporting, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla1.9.3a1
Tracking Status
status1.9.2 --- beta1-fixed

People

(Reporter: karlt, Assigned: karlt)

References

Details

Attachments

(1 file)

If libgconf-2.so.4 is installed but libgnomeui-2.so.0 is not then gconf and orbit get initiallized off the main thread. Interrupting on hang the stacks look like: (gdb) thread apply all bt Thread 2 (Thread 0xb6f58b90 (LWP 20280)): #0 0xb7fd3430 in __kernel_vsyscall () #1 0xb7663167 in poll () from /lib/tls/i686/cmov/libc.so.6 #2 0xb7834c52 in g_main_context_iterate (context=0x9836160, block=1, dispatch=1, self=0x982fbd8) at /build/buildd/glib2.0-2.18.2/glib/gmain.c:3091 #3 0xb7834f81 in IA__g_main_context_iteration (context=0x9836160, may_block=1) at /build/buildd/glib2.0-2.18.2/glib/gmain.c:2841 #4 0xb2ef92a7 in link_main_iteration (block_for_reply=1) at linc.c:285 #5 0xb2edb6de in giop_recv_buffer_get (ent=0xb6f57f9c, timeout=0xb6f57fb4) at giop-recv-buffer.c:727 #6 0xb2ee0816 in ORBit_small_invoke_stub (obj=0x989b738, m_data=0xb2f41ae0, ret=0xb6f58080, args=0x0, ctx=0x0, ev=0xb6f580d8) at orbit-small.c:660 #7 0xb2ee0a49 in ORBit_small_invoke_stub_n (object=0x989b738, methods=0xffffffff, index=<value optimized out>, ret=0xb6f58080, args=0x0, ctx=0x0, ev=0xb6f580d8) at orbit-small.c:577 #8 0xb2eed7aa in ORBit_c_stub_invoke (obj=0x989b738, methods=0xb2f41c64, method_index=0, ret=0xb6f58080, args=0x0, ctx=0x0, ev=0xb6f580d8, class_id=0, method_offset=4, skel_impl=0xb2f35380 <_ORBIT_skel_small_ConfigServer_get_default_database>) at poa.c:2649 #9 0xb2f37dee in ConfigServer_get_default_database (_obj=0x989b738, ev=0xb6f580d8) at GConfX-stubs.c:249 #10 0xb2f2c08a in gconf_engine_connect (conf=0x9833920, start_if_not_found=1, err=0xb6f581d0) at gconf.c:371 #11 0xb2f2c0e6 in gconf_engine_get_database (conf=0x9833920, start_if_not_found=-1, err=0xb6f581d0) at gconf.c:439 #12 0xb2f2f2ad in gconf_engine_get_fuller (conf=0x9833920, key=0x8057858 "/system/http_proxy/use_http_proxy", locale=0x966d2c0 "en_NZ.UTF-8", use_schema_default=1, is_default_p=0xb6f581d4, is_writable_p=0xb6f581d8, schema_name_p=0xb6f581cc, err=0xb6f581d0) at gconf.c:993 #13 0xb2f2f66e in gconf_engine_get_entry (conf=0x9833920, key=0x8057858 "/system/http_proxy/use_http_proxy", locale=0x966d2c0 "en_NZ.UTF-8", use_schema_default=1, err=0xb6f58258) at gconf.c:1110 #14 0xb2f329d4 in get (client=0x97b65a8, key=0x8057858 "/system/http_proxy/use_http_proxy", use_default=1, error=0xb6f58258) at gconf-client.c:1240 #15 0xb2f32b7e in gconf_client_get_full (client=0x97b65a8, key=0x8057858 "/system/http_proxy/use_http_proxy", locale=0x0, use_schema_default=1, err=0xb6f58298) at gconf-client.c:1287 #16 0xb2f33821 in gconf_client_get_bool (client=0x97b65a8, key=0x8057858 "/system/http_proxy/use_http_proxy", err=0x0) at gconf-client.c:1522 #17 0x080536c3 in LoadProxyinfo () at /home/karl/moz/dev/toolkit/crashreporter/client/crashreporter_linux.cpp:2 32 #18 0x080538bf in SendThread (args=0x0) at /home/karl/moz/dev/toolkit/crashreporter/client/crashreporter_linux.cpp:285 #19 0xb785c04f in g_thread_create_proxy (data=0x982fbd8) at /build/buildd/glib2.0-2.18.2/glib/gthread.c:635 #20 0xb7f8f50f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #21 0xb766da0e in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 1 (Thread 0xb7350700 (LWP 20271)): #0 0xb7fd3430 in __kernel_vsyscall () #1 0xb7663167 in poll () from /lib/tls/i686/cmov/libc.so.6 #2 0xb7834c52 in g_main_context_iterate (context=0x968a808, block=1, dispatch=1, self=0x9668e98) at /build/buildd/glib2.0-2.18.2/glib/gmain.c:3091 #3 0xb78352e2 in IA__g_main_loop_run (loop=0x982e7a0) at /build/buildd/glib2.0-2.18.2/glib/gmain.c:2986 #4 0xb7d0d3a9 in IA__gtk_main () at /build/buildd/gtk+2.0-2.14.4/gtk/gtkmain.c:1200 #5 0x08055c9b in UIShowCrashUI (dumpfile=@0x805932c, queryParameters=@0xbffd5898, sendURL=@0xbffd5908, restartArgs=@0xbffd58b0) at /home/karl/moz/dev/toolkit/crashreporter/client/crashreporter_linux.cpp:836 #6 0x0804f3bf in main (argc=2, argv=0xbffd5a34) at /home/karl/moz/dev/toolkit/crashreporter/client/crashreporter.cpp:597 (gdb) up #1 0xb7663167 in poll () from /lib/tls/i686/cmov/libc.so.6 (gdb) up #2 0xb7834c52 in g_main_context_iterate (context=0x968a808, block=1, dispatch=1, self=0x9668e98) at /build/buildd/glib2.0-2.18.2/glib/gmain.c:3091 3091 /build/buildd/glib2.0-2.18.2/glib/gmain.c: No such file or directory. in /build/buildd/glib2.0-2.18.2/glib/gmain.c Current language: auto; currently c (gdb) p fds[0]@nfds $3 = {{fd = 7, events = 1, revents = 0}, {fd = 6, events = 1, revents = 0}, { fd = 13, events = 3, revents = 0}, {fd = 15, events = 3, revents = 0}, { fd = 16, events = 3, revents = 0}, {fd = 17, events = 3, revents = 0}} (gdb) thread 2 [Switching to thread 2 (Thread 0xb6f58b90 (LWP 20280))]#0 0xb7fd3430 in __kernel_vsyscall () (gdb) up #1 0xb7663167 in poll () from /lib/tls/i686/cmov/libc.so.6 (gdb) up #2 0xb7834c52 in g_main_context_iterate (context=0x9836160, block=1, dispatch=1, self=0x982fbd8) at /build/buildd/glib2.0-2.18.2/glib/gmain.c:3091 3091 in /build/buildd/glib2.0-2.18.2/glib/gmain.c (gdb) p fds[0]@nfds $4 = {{fd = 11, events = 1, revents = 0}, {fd = 15, events = 3, revents = 0}, { fd = 16, events = 3, revents = 0}, {fd = 17, events = 3, revents = 0}} CORBA_ORB_init called giop_init with thread_safe=1, but I'm not sure whether that really means giop can be initialized off of the main thread or merely used. Having two event loops concurrently waiting for the same fd doesn't seem right. The hang does not always happen but seems to happen at least half the time. It is possible to close the dialog and the crashreporter will exit. Sometimes there is this assertion: ** (crashreporter:20271): CRITICAL **: ORBit_demarshal_object: assertion `orb != CORBA_OBJECT_NIL' failed
I guess it's not too unreasonable to assume that clone will apply the necessary write barrier. (I'm not so familiar with threads and memory coherency.)
Attachment #402224 - Flags: review?(ted.mielczarek)
Comment on attachment 402224 [details] [diff] [review] move LoadProxyinfo to the main thread Seems reasonable.
Attachment #402224 - Flags: review?(ted.mielczarek) → review+
http://hg.mozilla.org/mozilla-central/rev/8dbb37ed6de4 Some people have installed libgconf-2.so.4 without gnome libraries for bug 434997, so this should probably go on 1.9.2. I'll request approval in a day or so.
Flags: wanted1.9.2?
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9.3a1
Attachment #402224 - Flags: approval1.9.2?
Attachment #402224 - Flags: approval1.9.2? → approval1.9.2+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: