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 756978 - Deadlock in the places widget
Deadlock in the places widget
Status: RESOLVED FIXED
Product: nautilus
Classification: Core
Component: Sidebar
unspecified
Other Linux
: Normal normal
: 3.18
Assigned To: Nautilus Maintainers
Nautilus Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-10-22 16:29 UTC by Emmanuele Bassi (:ebassi)
Modified: 2015-11-12 20:50 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gtkplacesview: remove GDK_AVAILABLE_* (2.00 KB, patch)
2015-11-12 20:48 UTC, Carlos Soriano
committed Details | Review

Description Emmanuele Bassi (:ebassi) 2015-10-22 16:29:19 UTC
It seems that Nautilus is trying to create and/or access the places view from different threads, and it results in a deadlock, with the whole UI frozen.

I managed to attach GDB to the Nautilus process, and got this backtrace:

  • #0 syscall
  • #1 g_cond_wait
  • #2 g_once_init_enter
  • #3 gtk_places_view_get_type
  • #4 nautilus_places_view_init
  • #5 g_type_create_instance
  • #6 g_object_new_internal
  • #7 g_object_newv
  • #8 g_object_new
  • #9 got_file_info_for_view_selection_callback
  • #10 call_ready_callbacks_at_idle
  • #11 g_main_context_dispatch
  • #12 g_main_context_iterate.isra
  • #13 g_main_context_iteration
  • #14 g_application_run
  • #15 main

Comment 1 Emmanuele Bassi (:ebassi) 2015-11-08 15:43:04 UTC
Potential cause: the GtkPlacesView widget inside GTK+ exposes some public functions even though the API is meant to be private. Nautilus is trying to use the public symbols with the internal API and the type system gets confused.
Comment 2 Benjamin Otte (Company) 2015-11-09 00:51:48 UTC
I pushed a commit to GTKmaster that removes those symbols:

commit 2fcbf996c672eb8dcb1ed91b56028a4df3180c16
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Nov 9 01:44:01 2015 +0100

    placesview: Don't export API
        
    This is a private object, don't export its symbols.

Because git-bz makes it so easy I'll mark close the bug. If this fix doesn't
help, please reopen.
Comment 3 Carlos Soriano 2015-11-12 20:48:40 UTC
Created attachment 315373 [details] [review]
gtkplacesview: remove GDK_AVAILABLE_*

It was causing problems locking up the view and they
are actually wrong and unecessary
Comment 4 Carlos Soriano 2015-11-12 20:50:10 UTC
Comment on attachment 315373 [details] [review]
gtkplacesview: remove GDK_AVAILABLE_*

Attachment 315373 [details] pushed as beea39e - gtkplacesview: remove GDK_AVAILABLE_*