Skip to content

Unregistered lp1593805

Alberto Mardegan requested to merge unregistered-lp1593805 into master

The bug fixed by this branch was reported here.

This branch fixes a problem happening when signond's D-Bus objects get unregistered (possibly even with the signond process itself quitting) and the client doesn't get notified of their destruction. This normally doesn't happen, because signond sends a D-Bus signal before unregistering its paths; however, if the client application is busy and not iterating the main loop, it might process these signals after having invoked libsignon's methods, which will therefore not have the updated state. The solution adopted in this branch is to always give the main loop a chance to run before invoking a D-Bus method, by moving the invocation into an idle function. Also, the handling of the re-registration of the SignonIdentity D-Bus proxy has been fixed.

The branch contains several commits; I recommend reviewing it commit by commit, and not just as a large diff.

Merge request reports