Blame 0086-dbus-no-sync-D-Bus-connection-flushing.patch
|
Michal Schmidt |
e43452 |
From 8787a5577aef2703a1484a57db4fe3afb196fc73 Mon Sep 17 00:00:00 2001
|
|
Michal Schmidt |
e43452 |
From: Michal Schmidt <mschmidt@redhat.com>
|
|
Michal Schmidt |
e43452 |
Date: Mon, 19 Dec 2011 18:32:10 +0100
|
|
Michal Schmidt |
f1996e |
Subject: [PATCH] dbus: no sync D-Bus connection flushing
|
|
Michal Schmidt |
e43452 |
|
|
Michal Schmidt |
e43452 |
Blocking on D-Bus in a system manager could lead to deadlock.
|
|
Michal Schmidt |
e43452 |
(cherry picked from commit 9721b19968dd80ad187d03da214a2a8d28ead3ad)
|
|
Michal Schmidt |
e43452 |
---
|
|
Michal Schmidt |
e43452 |
src/dbus.c | 4 +++-
|
|
Michal Schmidt |
e43452 |
1 files changed, 3 insertions(+), 1 deletions(-)
|
|
Michal Schmidt |
e43452 |
|
|
Michal Schmidt |
e43452 |
diff --git a/src/dbus.c b/src/dbus.c
|
|
Michal Schmidt |
e43452 |
index 81b4f53..f9250f1 100644
|
|
Michal Schmidt |
e43452 |
--- a/src/dbus.c
|
|
Michal Schmidt |
e43452 |
+++ b/src/dbus.c
|
|
Michal Schmidt |
e43452 |
@@ -1196,7 +1196,9 @@ static void shutdown_connection(Manager *m, DBusConnection *c) {
|
|
Michal Schmidt |
e43452 |
}
|
|
Michal Schmidt |
e43452 |
|
|
Michal Schmidt |
e43452 |
dbus_connection_set_dispatch_status_function(c, NULL, NULL, NULL);
|
|
Michal Schmidt |
e43452 |
- dbus_connection_flush(c);
|
|
Michal Schmidt |
e43452 |
+ /* system manager cannot afford to block on DBus */
|
|
Michal Schmidt |
e43452 |
+ if (m->running_as != MANAGER_SYSTEM)
|
|
Michal Schmidt |
e43452 |
+ dbus_connection_flush(c);
|
|
Michal Schmidt |
e43452 |
dbus_connection_close(c);
|
|
Michal Schmidt |
e43452 |
dbus_connection_unref(c);
|
|
Michal Schmidt |
e43452 |
}
|