GNOME Bugzilla – Bug 81796
Segfault [nautilus_sidebar_tabs_update_all_indicators]
Last modified: 2004-12-22 21:47:04 UTC
This segfault has happened to me repeatedly with Nautilus out of CVS. (May 13 ca. 2100 UTC). It has not happened before with CVS Gnome 2 Nautilus. Stacktrace: (nautilus:3753): GLib-GObject-WARNING **: invalid uninstantiatable type `glong' in cast to `NautilusSidebarTabs' Program received signal SIGSEGV, Segmentation fault.
+ Trace 22163
Thread 1024 (LWP 3753)
The sidebar tabs I have are News, History and Notes.
I was not doing anything when this happened. I had opened and closed a few windows, hoping to see the segfault, but it didn't happen, I get bored and went away. When I looked at the screen a few minutes later, the segfault had happened. Something to do with periodic updating of sidebars?
Dave is most familiar with this code; cc'ing him but he's on vacation and won't be back until this weekend so don't get too antsy waiting for a response :)
*** Bug 81909 has been marked as a duplicate of this bug. ***
*** Bug 81981 has been marked as a duplicate of this bug. ***
It looks like we need to do several things: a) store a reference to the event_source, so we can find it to remove ourselves correctly, regardless of the state of the control etc. b) tab_item_destroy doesn't want to do quite such gratuitous round-tripping per tab item to remove listeners, c) and finally, we should prolly hold a g_object_ref in the closure to the sidebar widget, if we're expecting it to be around when we get a callback invoked.
partial fix to libbonobo to ensure we don't fire events on destroyed listeners.
Full belt and braces fix in the sidebar implementation, we can never get a stray signal now, and there are also a good number of 'obvious' efficiency fixes in there now ( for out of proc sidebar components at least ).