I believe I've found why this happens.  Or at least, one way it *could*
happen.  With a very similar stacktrace.

While a GtkUIManager is updating its dynamic elements, and it destroys a
menu item, any signal handlers for that destruction might further modify
the UIManager.  And the current code is poorly equipped to handle the
node structure changing out from under it while it is in update_node.

See attached test program.  It triggers two similar bugs: (1) deleting
the next sibling in the destruction handler and (2) deleting the parent
node in the destruction handler.

I haven't confirmed that either of these issues is this same exact crash
in nautilus yet.  But it sounds reasonable, and has a similar
stacktrace.

Run the program like so:
valac --pkg gtk+-3.0 test.vala && G_SLICE=debug-blocks ./test

The first bug you hit will be the sibling one.  Unless you comment out
that function call in the test, you won't ever get to the parent bug
because you'll keep crashing.

** Attachment added: "test.vala"
   
https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/1053862/+attachment/3399119/+files/test.vala

** Bug watch added: GNOME Bug Tracker #686174
   https://bugzilla.gnome.org/show_bug.cgi?id=686174

** Also affects: nautilus via
   https://bugzilla.gnome.org/show_bug.cgi?id=686174
   Importance: Unknown
       Status: Unknown

** Project changed: nautilus => gtk

** Package changed: nautilus (Ubuntu Quantal) => gtk+3.0 (Ubuntu
Quantal)

-- 
You received this bug notification because you are a member of Ubuntu
Desktop Bugs, which is subscribed to nautilus in Ubuntu.
https://bugs.launchpad.net/bugs/1053862

Title:
  nautilus crashed with SIGSEGV in g_list_foreach()

To manage notifications about this bug go to:
https://bugs.launchpad.net/gtk/+bug/1053862/+subscriptions

-- 
desktop-bugs mailing list
desktop-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/desktop-bugs

Reply via email to