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 512042 - Search crashes in metafile_read_state_free
Search crashes in metafile_read_state_free
Status: RESOLVED FIXED
Product: nautilus
Classification: Core
Component: [obsolete] GIO
0.x.x [obsolete]
Other All
: Normal critical
: ---
Assigned To: Christian Neumair
Nautilus Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-01-25 13:40 UTC by René Stadler
Modified: 2008-02-27 15:04 UTC
See Also:
GNOME target: ---
GNOME version: 2.21/2.22


Attachments
Proposed patch (468 bytes, patch)
2008-02-25 16:44 UTC, Christian Neumair
committed Details | Review

Description René Stadler 2008-01-25 13:40:54 UTC
Steps to reproduce:
1. Start nautilus in spatial mode
2. In the menu click "Places" -> "Search for files..." (or hit Ctrl+F)
3. Crash


Stack trace:
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
Core was generated by `nautilus --no-desktop'.
Program terminated with signal 11, Segmentation fault.
  • #0 metafile_read_state_free
    at nautilus-metafile.c line 1726
  • #0 metafile_read_state_free
    at nautilus-metafile.c line 1726
  • #1 metafile_read_mark_done
    at nautilus-metafile.c line 1733
  • #2 schedule_next_read
    at nautilus-metafile.c line 540
  • #3 nautilus_directory_register_metadata_monitor
    at nautilus-directory-metafile.c line 348
  • #4 nautilus_directory_call_when_ready_internal
    at nautilus-directory-async.c line 1324
  • #5 vfs_file_call_when_ready
    at nautilus-vfs-file.c line 68
  • #6 nautilus_file_call_when_ready
    at nautilus-file.c line 6182
  • #7 begin_location_change
    at nautilus-window-manage-views.c line 800
  • #8 nautilus_window_open_location_with_selection
    at nautilus-window-manage-views.c line 623
  • #9 nautilus_window_go_to_with_selection
    at nautilus-window.c line 246
  • #10 nautilus_application_present_spatial_window_with_selection
    at nautilus-application.c line 1220
  • #11 nautilus_window_open_location_full
    at nautilus-window-manage-views.c line 522
  • #12 nautilus_window_open_location
    at nautilus-window-manage-views.c line 606
  • #13 nautilus_window_go_to
    at nautilus-window.c line 237
  • #14 action_search_callback
    at nautilus-spatial-window.c line 875
  • #15 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #16 IA__g_closure_invoke
    at gclosure.c line 490
  • #17 signal_emit_unlocked_R
    at gsignal.c line 2440
  • #18 IA__g_signal_emit_valist
    at gsignal.c line 2199
  • #19 IA__g_signal_emit
    at gsignal.c line 2243
  • #20 _gtk_action_emit_activate
    at gtkaction.c line 872
  • #21 IA__gtk_action_activate
    at gtkaction.c line 899
  • #22 IA__g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #23 IA__g_closure_invoke
    at gclosure.c line 490
  • #24 signal_emit_unlocked_R
    at gsignal.c line 2440
  • #25 IA__g_signal_emit_valist
    at gsignal.c line 2199
  • #26 IA__g_signal_emit
    at gsignal.c line 2243
  • #27 IA__gtk_widget_activate
    at gtkwidget.c line 4706
  • #28 IA__gtk_menu_shell_activate_item
    at gtkmenushell.c line 1145
  • #29 gtk_menu_shell_button_release
    at gtkmenushell.c line 669
  • #30 gtk_menu_button_release
    at gtkmenu.c line 2725
  • #31 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #32 g_type_class_meta_marshal
    at gclosure.c line 567
  • #33 IA__g_closure_invoke
    at gclosure.c line 490
  • #34 signal_emit_unlocked_R
    at gsignal.c line 2478
  • #35 IA__g_signal_emit_valist
    at gsignal.c line 2209
  • #36 IA__g_signal_emit
    at gsignal.c line 2243
  • #37 gtk_widget_event_internal
    at gtkwidget.c line 4675
  • #38 IA__gtk_propagate_event
    at gtkmain.c line 2336
  • #39 IA__gtk_main_do_event
    at gtkmain.c line 1556
  • #40 gdk_event_dispatch
    at gdkevents-x11.c line 2351
  • #41 IA__g_main_context_dispatch
    at gmain.c line 2064
  • #42 g_main_context_iterate
    at gmain.c line 2697
  • #43 IA__g_main_loop_run
    at gmain.c line 2905
  • #44 IA__gtk_main
    at gtkmain.c line 1163
  • #45 main
    at nautilus-main.c line 569

Other information:
Note how metafile_read_state_free is called with NULL by metafile_read_mark_done.
Comment 1 Cosimo Cecchi 2008-01-25 13:44:33 UTC
I can't reproduce this with Nautilus 2.21.6.
Are you using SVN trunk? Can you test with 2.21.6 and try to reproduce the bug? Thanks.
Comment 2 René Stadler 2008-01-25 13:51:50 UTC
Yes, this is with SVN trunk.  Now that you mention that it's not reproducible I tried to run it as my regular user in my regular $HOME and indeed it succeeds.  It only crashes in a more minimal environment under a guest account.  Any ideas?
Comment 3 Christian Neumair 2008-02-25 16:40:48 UTC
Confirming.

Looking at the code revealed that we don't handle metafile->details->read_state != NULL in metafile_read_mark_done(), which we did in previous versions.
Comment 4 Christian Neumair 2008-02-25 16:44:12 UTC
Created attachment 105922 [details] [review]
Proposed patch

Submitted for review:

http://mail.gnome.org/archives/nautilus-list/2008-February/msg00204.html
Comment 5 Christian Neumair 2008-02-27 15:03:25 UTC
Committed, closing.