One of the steps D-Bus does while reloading its config is to create a new activation subsystem and unref the old one. This causes it to forget about all pending messages to services that are currently being activated and causes them to time out, even if the service was activated successfully.
This is a fairly bad bug. A few rough options: * Queue the reload until after all pending activation requests are completed * Rework the activation system to only load *new* .service files we haven't seen before for a reload, instead of dropping everything.
Created attachment 32165 [details] [review] possible patch Here is a patch which seems to do the right thing in very brief testing. Instead of recreating a new activation, it keeps the existing one and drops its service directories and activation entries, while keeping the pending activations. This seems to work ok in my quick testing.
This patch breaks the test suite; haven't had a chance to analyze why yet.
*** Bug 25977 has been marked as a duplicate of this bug. ***
Created attachment 32880 [details] [review] cleaned up patch
I wasn't able to reproduce the test suite failures I saw originally with this updated patch; if we hit those later someone will need to spend some time investigating. I believe this patch is right though.
Pushed to dbus-1.2 as b93476ce07acc
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.