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 81796 - Segfault [nautilus_sidebar_tabs_update_all_indicators]
Segfault [nautilus_sidebar_tabs_update_all_indicators]
Status: RESOLVED FIXED
Product: nautilus
Classification: Core
Component: general
0.x.x [obsolete]
Other Linux
: High critical
: ---
Assigned To: Michael Meeks
Nautilus Maintainers
: 81909 81981 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2002-05-14 21:37 UTC by Jon Kåre Hellan
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: Old
GNOME version: ---



Description Jon Kåre Hellan 2002-05-14 21:37:50 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.

Thread 1024 (LWP 3753)

  • #0 nautilus_sidebar_tabs_update_all_indicators
    at nautilus-sidebar-tabs.c line 1380
  • #1 tab_indicator_changed_callback
    at nautilus-sidebar-tabs.c line 1412
  • #2 bonobo_marshal_VOID__STRING_BOXED_BOXED
    at bonobo-marshal.c line 125
  • #3 g_closure_invoke
    at gclosure.c line 437
  • #4 bonobo_closure_invoke_va_list
    at bonobo-types.c line 415
  • #5 bonobo_closure_invoke
    at bonobo-types.c line 474
  • #6 impl_Bonobo_Listener_event
    at bonobo-listener.c line 48
  • #7 _ORBIT_skel_small_Bonobo_Listener_event
    at Bonobo-skels.c line 695
  • #8 ORBit_POAObject_invoke
    at poa.c line 891
  • #9 ORBit_OAObject_invoke
    at orbit-adaptor.c line 116
  • #10 ORBit_small_invoke_adaptor
    at orbit-small.c line 772
  • #11 ORBit_POAObject_handle_request
    at poa.c line 1085
  • #12 ORBit_POA_handle_request
    at poa.c line 1172
  • #13 ORBit_handle_request
    at orbit-adaptor.c line 79
  • #14 giop_connection_handle_input
    at giop-recv-buffer.c line 951
  • #15 linc_connection_io_handler
    at linc-connection.c line 841
  • #16 linc_source_dispatch
    at linc-source.c line 54
  • #17 g_main_dispatch
    at gmain.c line 1617
  • #18 g_main_context_dispatch
    at gmain.c line 2161
  • #19 g_main_context_iterate
    at gmain.c line 2242
  • #20 g_main_loop_run
    at gmain.c line 2462
  • #21 gtk_main
    at gtkmain.c line 936
  • #22 main
    at nautilus-main.c line 26

The sidebar tabs I have are News, History and Notes.
Comment 1 Jon Kåre Hellan 2002-05-15 07:36:49 UTC
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?
Comment 2 Luis Villa 2002-05-15 17:25:13 UTC
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 :) 
Comment 3 Luis Villa 2002-05-16 05:05:20 UTC
*** Bug 81909 has been marked as a duplicate of this bug. ***
Comment 4 Luis Villa 2002-05-17 03:13:14 UTC
*** Bug 81981 has been marked as a duplicate of this bug. ***
Comment 5 Michael Meeks 2002-05-20 16:28:58 UTC
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.
Comment 6 Michael Meeks 2002-05-21 09:58:08 UTC
partial fix to libbonobo to ensure we don't fire events on destroyed
listeners.
Comment 7 Michael Meeks 2002-05-21 11:30:55 UTC
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 ).