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 578577 - deadlock in contact image lookup leading to evo hang formatting message
deadlock in contact image lookup leading to evo hang formatting message
Status: RESOLVED DUPLICATE of bug 361145
Product: evolution-data-server
Classification: Platform
Component: Contacts
2.26.x (obsolete)
Other All
: Normal major
: ---
Assigned To: evolution-addressbook-maintainers
Evolution QA team
Depends on:
Blocks: 361145
 
 
Reported: 2009-04-10 05:25 UTC by Michael Gratton
Modified: 2012-05-09 09:26 UTC
See Also:
GNOME target: ---
GNOME version: 2.25/2.26


Attachments
back trace from eds, 2.26.0-0ubuntu2 (near svn head) (5.93 KB, text/plain)
2009-04-10 05:28 UTC, Michael Gratton
Details
back trace from evo, 2.26.0-0ubuntu2 (near svn head) (10.63 KB, text/plain)
2009-04-10 05:28 UTC, Michael Gratton
Details
stdout from eds at the time of the deadlock (253 bytes, text/plain)
2009-04-10 05:29 UTC, Michael Gratton
Details
back trace from a call to e-book-backend.c:listener_died_cb (1.54 KB, text/plain)
2009-04-10 12:38 UTC, Michael Gratton
Details

Description Michael Gratton 2009-04-10 05:25:14 UTC
+++ This bug was initially created as a clone of Bug #361145 +++

There appears to be a deadlock in EDS when looking up contact images for message display in Evolution. This causes Evo to become stuck when displaying a message in the preview plane, with the status bar displaying "Formatting message..." but the message never actually appearing.

Disabling contact lookup display seems to fix getting stuck at formatting message for me.

Splitting this off of bug #361145 as the request of Milan Crha.
Comment 1 Michael Gratton 2009-04-10 05:26:05 UTC
Blocking #361145 since it is one cause of the "Formatting message" hang.
Comment 2 Michael Gratton 2009-04-10 05:28:11 UTC
Created attachment 132445 [details]
back trace from eds, 2.26.0-0ubuntu2 (near svn head)

(from bug #361145 comment #65)
> OK, I do not understand why it does so, but this is a deadlock in eds.
> From your traces, thread 2 holds the lock which thread 1 is waiting on, but
> thread 2 wants to notify on thread 1, which is "busy".
Comment 3 Michael Gratton 2009-04-10 05:28:47 UTC
Created attachment 132446 [details]
back trace from evo, 2.26.0-0ubuntu2 (near svn head)
Comment 4 Michael Gratton 2009-04-10 05:29:41 UTC
Created attachment 132447 [details]
stdout from eds at the time of the deadlock
Comment 5 Milan Crha 2009-04-10 07:54:42 UTC
From the eds backtrace, it thinks the "client" of the EBook crashed (or something very similar), thus it calls that idle_remove_client, which is invoked in
e-book-backend.c:listener_died_cb
Maybe it's called as part of the notification about online status, which is the thing doing in the Thread 2.

Could you run evolution-data-server under gdb with a breakpoint into the above listener_died_cb and paste here backtrace of its call? (I guess you know how to do that, if not, just ask.) Thanks.

One silly question, there is nothing special about your online/offline state, or the medium where is your personal address book stored, is it? It's strange to me to be notified about online state on the local storage.
Comment 6 Michael Gratton 2009-04-10 12:38:24 UTC
Created attachment 132457 [details]
back trace from a call to e-book-backend.c:listener_died_cb

This is the bt and surrounding eds/gdb output from a call to e-book-backend.c:listener_died_cb triggered by a message load, although after continuing it didn't actually get stuck on in formatting. I'll keep looking for one of those.
Comment 7 Milan Crha 2009-04-10 13:40:22 UTC
eh, I forgot the orbit thing, it sends the 'die' signal async too. Hard to find why it died. Hmm, maybe it was just closed.

I just tried to be sure and this function is not called for me when moving between messages in a folder, only when I close evolution.
Comment 8 Michael Gratton 2009-04-11 03:49:45 UTC
Hmm, I don't think it is just being closed because typically when the break point is hit it gets hit many times, which seems pretty odd for normal behaviour.
Comment 9 Milan Crha 2009-04-14 11:17:18 UTC
Looking around the breakpoint, is it always the same or different? We should be able to find out the reason for calling this, but as this is called async from ORBit2, it'll be harder. Could you install also debug info packages for ORBit2 (might be libORBit2 or something like that), and then put breakpoint to 
linc-connection.c:add_idle_broken_for_cnx_T
that might show us what connection type changed and hopefully why, as this, I hope, is not called async.
Comment 10 Milan Crha 2012-05-09 09:26:17 UTC
I'm marking this as a duplicate of bug #361145 (back to the roots), because I'm not aware of any other reason of the stuck 'Formatting message' activity in current stable evolution (3.4.1).

*** This bug has been marked as a duplicate of bug 361145 ***