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 735953 - GtkPlacesSidebar blocks on g_file_query_info()
GtkPlacesSidebar blocks on g_file_query_info()
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Widget: GtkFileChooser
3.13.x
Other Linux
: Normal major
: ---
Assigned To: gtk-bugs
Federico Mena Quintero
: 727362 731798 734250 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2014-09-03 07:00 UTC by Ankur Sinha (FranciscoD)
Modified: 2014-09-14 23:07 UTC
See Also:
GNOME target: ---
GNOME version: 3.11/3.12


Attachments
stack trace (62.58 KB, text/x-log)
2014-09-03 07:00 UTC, Ankur Sinha (FranciscoD)
  Details
Another trace (73.68 KB, text/x-log)
2014-09-03 09:37 UTC, Ankur Sinha (FranciscoD)
  Details
places-sidebar: Use asynchronous API for querying bookmarks (8.42 KB, patch)
2014-09-03 11:54 UTC, Emmanuele Bassi (:ebassi)
committed Details | Review

Description Ankur Sinha (FranciscoD) 2014-09-03 07:00:42 UTC
Created attachment 285224 [details]
stack trace

Hi,

Sometimes evolution becomes unresponsive. Ultimately, the "window not responding" dialog comes up and I have to force kill it. This seems to happen when a new dialog box is to open, for example when I click "reply", or "forward", or even "edit > plugins". 

Unfortunately I cannot reproduce this every time. I don't really know how to debug this. I ran it in gdb and when it hung, I hit ctrl C in gdb to generate a trace. Please find it attached. 

While in this state, this is what ps aux gives me:

[asinha@localhost  ~]$ ps aux | egrep evolution
asinha    1946  0.0  0.1 1752436 14472 ?       SLl  12:35   0:02 /usr/libexec/evolution-source-registry
asinha    2041  0.0  0.1 894424 15200 ?        Sl   12:35   0:00 /usr/libexec/evolution/3.12/evolution-alarm-notify
asinha    2237  0.0  0.3 2470372 29896 ?       Sl   12:36   0:03 /usr/libexec/evolution-calendar-factory
asinha    5405  0.4  2.6 434384 214932 pts/7   S    13:59   0:45 gdb evolution
asinha    5431  1.9  3.0 4204780 240012 pts/7  Sl+  13:59   3:07 /usr/bin/evolution

This looks the same as when evolution is running properly. I don't know if this information is enough to debug the issue but I'll be happy to provide more if you can tell me how to get it.

If evolution hangs once, it appears to keep hanging on successive attempts, even if I manually kill all the evolution* processes listed above. I manually also killed goa and then evolution stopped hanging. Maybe it's something there. I'll see if it's always the case. 

I also got this message while watching the process in gdb once:

(evolution:487): evolution-mail-WARNING **: handle_contact_photo_request: Cannot get contact list: Wait till syncing is done

Thanks,
Warm regards,
Ankur
Comment 1 Ankur Sinha (FranciscoD) 2014-09-03 09:37:12 UTC
Created attachment 285239 [details]
Another trace
Comment 2 Ankur Sinha (FranciscoD) 2014-09-03 09:48:14 UTC
Abrt filed this during one of the hangs. May be worth looking at: https://bugzilla.redhat.com/show_bug.cgi?id=1136778
Comment 3 Matthew Barnes 2014-09-03 11:12:41 UTC
This is the GtkPlacesSidebar (the file chooser's sidebar) making synchronous GIO calls and apparently getting stuck on a mount operation.

This is known already to GTK+ devs -- there's even a FIXME comment about it [1] -- but couldn't find a duplicate bug report so I'm just reassigning.

[1] https://git.gnome.org/browse/gtk+/tree/gtk/gtkplacessidebar.c#n1152
Comment 4 Emmanuele Bassi (:ebassi) 2014-09-03 11:54:12 UTC
Created attachment 285251 [details] [review]
places-sidebar: Use asynchronous API for querying bookmarks

Removes two FIXMEs, and ensures that the places sidebar does not block
while enumerating bookmarks or application shortcuts to remote volumes.
Comment 5 Emmanuele Bassi (:ebassi) 2014-09-03 11:55:30 UTC
bug 711548 briefly mentioned the issue, but it was fixed by skipping unmounted volumes.
Comment 6 Matthias Clasen 2014-09-03 13:44:49 UTC
Review of attachment 285251 [details] [review]:

We probably need a cancellable and cancel outstanding async ops in dispose, no ?
Comment 7 Matthias Clasen 2014-09-04 03:30:56 UTC
Attachment 285251 [details] pushed as c68fc27 - places-sidebar: Use asynchronous API for querying bookmarks
Comment 8 Khurshid Alam 2014-09-05 07:44:16 UTC
I want it to be cherry-picked for GTK+ 3.12 as well. Thanks.
Comment 9 Ross Lagerwall 2014-09-11 22:03:07 UTC
*** Bug 727362 has been marked as a duplicate of this bug. ***
Comment 10 Cosimo Cecchi 2014-09-13 05:48:21 UTC
*** Bug 734250 has been marked as a duplicate of this bug. ***
Comment 11 Cosimo Cecchi 2014-09-14 23:07:23 UTC
*** Bug 731798 has been marked as a duplicate of this bug. ***