What | Removed | Added |
---|---|---|
Status | NEEDINFO | ASSIGNED |
Sorry, should have changed the status earlier. I was able to reproduce the problem with an automatic test and have a fix. As usual, the fix was much simpler than writing the test ;-) These commits still need to be merged into master: commit fc3d1d6ec4af180bbc3e934110b83e3149eae957 Author: Patrick Ohly <patrick.ohly@intel.com> Date: Thu Jan 16 14:06:08 2014 +0100 D-Bus testing: cover auto-sync + command line session (FDO #73562) This adds hooks into doAutoSyncLocalSuccess() which are used by testAutoSyncLocalMultiple() to start a session while waiting for auto-sync, access the config which will get auto-synced, then continue waiting. While at it, also measure the actual auto sync interval and roughly compare against the configured one. commit ac1887741f7fdff807016d397ea95bd8302fd422 Author: Patrick Ohly <patrick.ohly@intel.com> Date: Thu Jan 16 13:56:46 2014 +0100 D-Bus server: fix abort when mixing auto-sync and manual operations (FDO #73562) When enabling auto-sync for a config and then accessing or syncing the config manually via the command line tool, the server would abort at the time when the auto-sync was originally scheduled. The reason is that rescheduling reset the timeout which caused the rescheduling, only to be cleared when the rescheduling callback returns. Then when it triggered next, an empty boost::method was called. The fix is to to track whether the Timeout instance still refers to the same glib timeout and only clear the instance if that's still the case. A unit test will be committed separately.