On Thu, 2006-10-26 at 10:43 -0400, Dan Williams wrote: > Admittedly, libnm_glib is pretty bad, but was developed as a hack for eg > firefox to not have to hook up to DBus directly. So perhaps we should be hooking into NetworkManager differently? We have DBus support already, so that shouldn't be a problem for us like it might be for FireFox. > In any case, the only > g_usleep() in libnm_glib is waiting for dbus handler thread to start. DBus threading... I was afraid of that. There was recently a RedHat bugzilla bug on a similar issue in Gaim. I don't have the number off-hand, but maybe Warren does. It was something with deadlocks because the GTK+ file chooser would init the vfs library, which used threads, and DBus used threads, and the initializations didn't play well together. IIRC, eventually this was fixed in DBus, so maybe this isn't a problem with newer versions of DBus? > Instead of doing a 'bt', can you do a 't a a bt' (thread apply all > backtrace) to get a backtrace that includes _all_ threads? (gdb) r Starting program: /home/rlaager/bin/gaim-HEAD [Thread debugging using libthread_db enabled] [New Thread -1209166144 (LWP 27296)] [New Thread -1214899280 (LWP 27300)] Program received signal SIGINT, Interrupt. [Switching to Thread -1209166144 (LWP 27296)] 0xffffe410 in __kernel_vsyscall () (gdb) thread a a bt Thread 2 (Thread -1214899280 (LWP 27300)): #0 0xffffe410 in __kernel_vsyscall () #1 0x47a5c2ae in __lll_mutex_lock_wait () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x47a58fbb in _L_mutex_lock_33 () from /lib/tls/i686/cmov/libpthread.so.0 #3 0xb79612b8 in ?? () #4 0x4b2bdb6c in dbus_g_object_path_get_g_type () from /usr/lib/libdbus-glib-1.so.2 #5 0x4b2bdb34 in dbus_g_object_path_get_g_type () from /usr/lib/libdbus-glib-1.so.2 #6 0x47b793d7 in dbus_timeout_get_enabled () from /usr/lib/libdbus-1.so.2 #7 0x47b7bbd7 in dbus_watch_handle () from /usr/lib/libdbus-1.so.2 #8 0x47b66aae in dbus_connection_allocate_data_slot () from /usr/lib/libdbus-1.so.2 #9 0x47b6108f in dbus_address_unescape_value () from /usr/lib/libdbus-1.so.2 #10 0x47b61514 in dbus_bus_register () from /usr/lib/libdbus-1.so.2 #11 0xb7ede4f9 in libnm_glib_dbus_init (user_data=0x818aca8, context=0x8185e00) at libnm_glib.c:298 #12 0xb7ede69e in libnm_glib_dbus_worker (user_data=0x818aca8) at libnm_glib.c:401 #13 0x4ab825a2 in g_static_private_free () from /usr/lib/libglib-2.0.so.0 #14 0x47a57341 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 ---Type <return> to continue, or q <return> to quit--- #15 0x479ab4ee in clone () from /lib/tls/i686/cmov/libc.so.6 Thread 1 (Thread -1209166144 (LWP 27296)): #0 0xffffe410 in __kernel_vsyscall () #1 0x47a5cd56 in __nanosleep_nocancel () from /lib/tls/i686/cmov/libpthread.so.0 #2 0x4ab84b04 in g_usleep () from /usr/lib/libglib-2.0.so.0 #3 0xb7ede8d3 in libnm_glib_init () at libnm_glib.c:488 #4 0xb7f210f2 in gaim_network_init () at network.c:600 #5 0xb7f163b5 in gaim_core_init (ui=0x80d2a6d "gtk-gaim") at core.c:128 #6 0x080a8b30 in main (argc=1, argv=0xbfa98e84) at gtkmain.c:706 Richard
Attachment:
signature.asc
Description: This is a digitally signed message part