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 358393 - gtk_file_system_volume_get_base_path
gtk_file_system_volume_get_base_path
Status: RESOLVED DUPLICATE of bug 357364
Product: gtk+
Classification: Platform
Component: Widget: GtkFileChooser
2.10.x
Other All
: High critical
: ---
Assigned To: gtk-bugs
Federico Mena Quintero
Depends on:
Blocks:
 
 
Reported: 2006-09-29 22:33 UTC by jat48
Modified: 2006-09-30 14:26 UTC
See Also:
GNOME target: ---
GNOME version: 2.15/2.16



Description jat48 2006-09-29 22:33:09 UTC
What were you doing when the application crashed?
Opening preferences


Distribution: Fedora Core release 5.92 (FC6 Test3)
Gnome Release: 2.16.0 2006-09-04 (Red Hat, Inc)
BugBuddy Version: 2.16.0

Memory status: size: 380669952 vsize: 380669952 resident: 15343616 share: 11001856 rss: 15343616 rss_rlim: -1
CPU usage: start_time: 1159569146 rtime: 11 utime: 9 stime: 2 cutime:0 cstime: 1 timeout: 0 it_real_value: 0 frequency: 100

Backtrace was generated from '/usr/bin/sound-juicer'

(no debugging symbols found)
Using host libthread_db library "/lib64/libthread_db.so.1".
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 46912504578544 (LWP 4730)]
(no debugging symbols found)
0x000000320580d96f in waitpid () from /lib64/libpthread.so.0

Thread 1 (Thread 46912504578544 (LWP 4730))

  • #0 waitpid
    from /lib64/libpthread.so.0
  • #1 gnome_gtk_module_info_get
    from /usr/lib64/libgnomeui-2.so.0
  • #2 ??
  • #0 waitpid
    from /lib64/libpthread.so.0

Comment 1 Karsten Bräckelmann 2006-09-29 22:34:39 UTC
Thanks for the bug report. Unfortunately, that stack trace is not very useful in determining the cause of the crash. Can you get us one with debugging symbols? Please see http://live.gnome.org/GettingTraces for more information on how to do so.
Comment 2 John Thacker 2006-09-29 22:42:06 UTC
I had just changed the directory to a subdirectory of my home directory.  Oddly, it still extracts to the new directory fine, it just crashes if I attempt to enter preferences.

Stack trace using gdb:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 46912504578544 (LWP 4920)]
0x0000003204c74f60 in strcmp () from /lib64/libc.so.6
(gdb) thread apply all bt

Thread 1 (Thread 46912504578544 (LWP 4920))

  • #0 strcmp
    from /lib64/libc.so.6
  • #1 gtk_file_chooser_button_new
    from /usr/lib64/libgtk-x11-2.0.so.0
  • #2 ??
  • #3 g_quark_from_string
    from /lib64/libglib-2.0.so.0
  • #4 ??
  • #5 ??
  • #6 g_object_unref
    from /lib64/libgobject-2.0.so.0
  • #7 ??
  • #8 ??
  • #9 ??

Comment 3 Karsten Bräckelmann 2006-09-29 23:19:50 UTC
John, stacktraces collected by bug-buddy usually are fine.

The issue here is, that neither of these stacktraces are really useful, cause they don't have debugging symbols. If you could install the relevant packages containing the debugging symbols (for sound-juicer and some basic GNOME libs), reproduce the crash and paste or attach the resulting stacktrace here, that would be most helpful.  Thanks.


Also, of course, thanks for the additional information. :)
Comment 4 John Thacker 2006-09-29 23:32:39 UTC
The thing is, sometimes it doesn't call bug-buddy when it crashes.  I had installed the sound-juicer debuginfo packages for the second stack trace.  Here's one with the debugging symbols for gtk and glib.  This is after using gconftool to unset the uriinfo key (at which point it works fine) and then crashing upon attempting to change the path.

Looks like it's segfaulting in strcmp.  Presumably it's reading off the end of the string for the uriinfo key that tells it where to put the extracted files.  Or it's crashing off of what it's trying to compare it to.  Do you need any more symbols?

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 46912504578544 (LWP 5737)]
0x0000003204c74f60 in strcmp () from /lib64/libc.so.6
(gdb) thread apply all bt

Thread 1 (Thread 46912504578544 (LWP 5737))

  • #0 strcmp
    from /lib64/libc.so.6
  • #1 update_combo_box
    at gtkfilechooserbutton.c line 2212
  • #2 dialog_response_cb
    at gtkfilechooserbutton.c line 2680
  • #3 IA__g_closure_invoke
    at gclosure.c line 490
  • #4 signal_emit_unlocked_R
    at gsignal.c line 2438
  • #5 IA__g_signal_emit_valist
    at gsignal.c line 2197
  • #6 IA__g_signal_emit
    at gsignal.c line 2241
  • #7 IA__g_closure_invoke
    at gclosure.c line 490
  • #8 signal_emit_unlocked_R
    at gsignal.c line 2438
  • #9 IA__g_signal_emit_valist
    at gsignal.c line 2197
  • #10 IA__g_signal_emit
    at gsignal.c line 2241
  • #11 gtk_real_button_released
    at gtkbutton.c line 1484
  • #12 IA__g_closure_invoke
    at gclosure.c line 490
  • #13 signal_emit_unlocked_R
    at gsignal.c line 2368
  • #14 IA__g_signal_emit_valist
    at gsignal.c line 2197
  • #15 IA__g_signal_emit
    at gsignal.c line 2241
  • #16 gtk_button_button_release
    at gtkbutton.c line 1377
  • #17 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 84
  • #18 IA__g_closure_invoke
    at gclosure.c line 490
  • #19 signal_emit_unlocked_R
    at gsignal.c line 2476
  • #20 IA__g_signal_emit_valist
    at gsignal.c line 2207
  • #21 IA__g_signal_emit
    at gsignal.c line 2241
  • #22 gtk_widget_event_internal
    at gtkwidget.c line 3911
  • #23 IA__gtk_propagate_event
    at gtkmain.c line 2188
  • #24 IA__gtk_main_do_event
    at gtkmain.c line 1422
  • #25 gdk_event_dispatch
    at gdkevents-x11.c line 2320
  • #26 IA__g_main_context_dispatch
    at gmain.c line 2045
  • #27 g_main_context_iterate
    at gmain.c line 2677
  • #28 IA__g_main_loop_run
    at gmain.c line 2881
  • #29 IA__gtk_main
    at gtkmain.c line 1001
  • #30 main
    at sj-main.c line 1538

Comment 5 John Thacker 2006-09-30 00:01:00 UTC
base_path, which is set by
base_path = gtk_file_system_volume_get_base_path (priv->fs, data)
at gtkfilechooserbutton.c:2212
is definitely being set to a NULL pointer, which crashes strcmp.
Comment 6 Karsten Bräckelmann 2006-09-30 00:28:05 UTC
Great, thanks John. Good investigation. :-)

Moving to GTK+. Reopening and Confirming.
Comment 7 Karsten Bräckelmann 2006-09-30 00:32:51 UTC
Actually, just like bug 357714, I believe this to be a duplicate of bug 357364. Thanks again, John.
Comment 8 Karsten Bräckelmann 2006-09-30 00:33:44 UTC

*** This bug has been marked as a duplicate of 357364 ***
Comment 9 Snark 2006-09-30 11:27:19 UTC
Nice find in comment #5 : I checked and it's the only place in the file where base_path is used without being checked afterwards.

A possible fix should be to replace :
            row_found = (paths &&
                         paths->data &&
                         gtk_file_path_compare (base_path, paths->data) == 0);
with :
            row_found = (base_path &&
                         paths &&
                         paths->data &&
                         gtk_file_path_compare (base_path, paths->data) == 0);

(I'm assuming the next line with gtk_file_path_free is a g_free and won't give issues with NULL)
Comment 10 John Thacker 2006-09-30 14:26:44 UTC
BTW, this is definitely gtk+-2.10.4, so in addition to bug 357364, it could be related to bug 358405