After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 679009 - SourceRegistry new hangs
SourceRegistry new hangs
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: general
3.6.x (obsolete)
Other Linux
: Normal normal
: ---
Assigned To: Evolution Shell Maintainers Team
Evolution QA team
evolution[account-mgmt]
Depends on:
Blocks:
 
 
Reported: 2012-06-27 20:44 UTC by Jeremy Whiting
Modified: 2013-09-05 03:41 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Jeremy Whiting 2012-06-27 20:44:42 UTC
In folks eds backend unit tests the SourceRegistry new method (both async and sync) are hanging sometimes.  I have 29 unit tests and at least one hangs every time (different ones each time).
Comment 1 Jeremy Whiting 2012-06-27 21:29:01 UTC
On further debugging I found that the evolution-source-registry is not running when it hangs, but is running for the unit tests that work.  Maybe something is wrong with the dbus activation.
Comment 2 Milan Crha 2012-09-10 16:54:10 UTC
Thanks for a bug report. I used to get crash of evolution with "Timeout was reached" during evolution-source-registry process activation too, but it was rather rare. I do not recall when I saw it the last time (might be because I do not restart all processes that often and that much these days). This is with current git master, basically after 3.5.91 release.

By the way, can be because of DBus timing? Like you invoke close of the registry process on your test end, which DBus comes to do, but you try to start a new registry process while the previous one is not fully unregistered on the DBus, thus is tries to reuse that one and it fails afterwards? I would try to put some sleep(2); between your unit tests, just for a test whether it's caused outside of evolution or not.
Comment 3 Matthew Barnes 2012-09-10 18:33:19 UTC
This sounds a lot like bug 683519.

There's a deadlock scenario still at large in GObject.

I worked around it for the time being in:

http://git.gnome.org/browse/evolution-data-server/commit/?id=6c4c1c6a1f40a6873be954a0b9d770e31726bd50
Comment 4 Milan Crha 2012-09-11 06:38:00 UTC
Would it make sense to mimic g_type_ensure(), rather than this ref & unref call?
> g_type_class_unref (g_type_class_ref (type))
I did so for the webkit view type recently, because the ref/unref also calls class finalization, which may have certain side-effects.
Comment 5 Matthew Barnes 2013-09-05 03:41:15 UTC
Closing this as FIXED per comment 3.

Haven't received any other reports of ESourceRegistry hanging.