| Summary: | Deadlock when calling dbus_bus_get() after dbus_g_thread_init() using sudo | ||
|---|---|---|---|
| Product: | dbus | Reporter: | Sebastian Dröge (slomo) <slomo> |
| Component: | GLib | Assignee: | Rob Taylor <rob.taylor> |
| Status: | RESOLVED FIXED | QA Contact: | John (J5) Palmieri <johnp> |
| Severity: | major | ||
| Priority: | high | ||
| Version: | unspecified | ||
| Hardware: | x86 (IA32) | ||
| OS: | Linux (All) | ||
| Whiteboard: | |||
| i915 platform: | i915 features: | ||
| Attachments: | test.c | ||
|
Description
Sebastian Dröge (slomo)
2006-12-06 03:26:05 UTC
Created attachment 7976 [details]
test.c
This is btw with dbus 1.0.1 and dbus-glib 0.72. I think J5 mentioned he had a fix for this. One workaround is to use dbus_threads_init_default() instead of dbus_g_threads_init() since the internal thread implementation uses recursive threading and glib's uses non-recursive. dbus_g_threads_init should start to call dbus_threads_init_default() in the future. We should also fix this code to work with nonrecursive locks by dropping the lock whenever we call functions outside of bus.c that may call back into bus.c Fixed in git head. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.