nautilus crashes with SIGSEGV in g_slice_alloc() when opening trash

Bug #399328 reported by cnom
38
This bug affects 6 people
Affects Status Importance Assigned to Milestone
nautilus (Ubuntu)
Invalid
Medium
Ubuntu Desktop Bugs

Bug Description

Binary package hint: nautilus

This is basically the same bug as #395673, which was closed because of missing info. Difference is they were using 64bit jaunty, I'm on vanilla.

Their original report:
"I sent 24 .mkv files to the trash folder with the delete key, each file was about 180 Mb. I tried to open the trash folder but when I did, Nautilus crashed, all the Nautilus windows that were open were immediatly closed and all the icons in my desktop dissapeared. If I tried to open the trash folder again the same thing would happen.
I used the trash docklet that comes with gnome-do to empty the trash. With the trash empty I was able to open the trash folder and the icons in my desktop showed up again.
Since then any file that I send to the trash causes this same behaviour, I can't open the trash folder if it has something in it, because it causes Nautilus to crash. I can only access the trash folder if it's empty."

My additional observations:
To make the crash file, I've emptied the trash, put one zero-length file into it and tried to open trash. It crashes whether I open the trash from the desktop or from the browser window.

If I open the *empty* trashcan and only then put the null file into the trash, though, everything seems fine. I can see the file and even open a second or third Nautilus on the trash folder until *all of them* are closed again. Thereafter, opening trash once again crashes Nautilus.

ProblemType: Crash
Architecture: i386
CrashCounter: 1
DistroRelease: Ubuntu 9.04
ExecutablePath: /usr/bin/nautilus
NonfreeKernelModules: fglrx
Package: nautilus 1:2.26.2-0ubuntu2
ProcCmdline: nautilus /home/hp
ProcCwd: /home/hp
ProcEnviron:
 LANG=en_US.UTF-8
 SHELL=/bin/zsh
Signal: 11
SourcePackage: nautilus
StacktraceTop:
 g_slice_alloc () from /usr/lib/libglib-2.0.so.0
 g_string_sized_new () from /usr/lib/libglib-2.0.so.0
 g_markup_escape_text () from /usr/lib/libglib-2.0.so.0
 ?? () from /usr/lib/libgtk-x11-2.0.so.0
 g_markup_parse_context_parse ()
Title: nautilus crashed with SIGSEGV in g_slice_alloc()
Uname: Linux 2.6.28-13-generic i686
UserGroups: adm admin audio cdrom erotica lpadmin multimedia plugdev sambashare truecrypt video www-data

Revision history for this message
cnom (cnom) wrote :
visibility: private → public
Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt (retraced)

StacktraceTop:g_pattern_ph_match (match_pattern=<value optimized out>,
IA__g_regex_replace_eval (regex=0x0, string=0xb4e52080 "",
g_io_channel_read_line_backend (channel=0x0,
gtk_menu_get_child_property (container=0xb4e55798,
IA__g_key_file_set_integer (key_file=0xb4e55798,

Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt (retraced)
Changed in nautilus (Ubuntu):
importance: Undecided → Medium
tags: removed: need-i386-retrace
Revision history for this message
Pedro Villavicencio (pedro) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. Please try to obtain a valgrind log following the instructions at https://wiki.ubuntu.com/Valgrind and attach the file to the bug report. This will greatly help us in tracking down your problem.

Changed in nautilus (Ubuntu):
assignee: nobody → Ubuntu Desktop Bugs (desktop-bugs)
status: New → Incomplete
Revision history for this message
Otto Schumacher (otto-schumacher) wrote :

It's the same problem for me. Nautilus crashes whenever it tries to access the Trash folder while it is not empty.
The only difference is, that I do not get any crash reports. Nautilus windows simply disappear. Thats all.

Regards,
Otto

Revision history for this message
Otto Schumacher (otto-schumacher) wrote :

I tried to start nautilus in the debugger:

>gdb --args nautilus trash:///
Starting program: /usr/bin/nautilus trash:///
...
Program exited normally.

Revision history for this message
cnom (cnom) wrote :

Started nautilus from the terminal to see what it would say at the time of the crash. Here's what it said:

>(nautilus:23236): GLib-GIO-CRITICAL **: g_file_info_get_name: assertion `G_IS_FILE_INFO (info)' failed
>
>** (nautilus:23236): WARNING **: Got GFileInfo with NULL name in trash:///, ignoring. This shouldn't happen unless the gvfs backend is broken.
>
>
>(nautilus:23236): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
>zsh: segmentation fault nautilus

Valgrind log following.

Revision history for this message
A. Walton (awalton) wrote :

It's recently gotten tricker to start Nautilus in the debugger due to gnome session's pathological restarting behavior. Instead, try attaching the debugger to the existing process and then reproduce the crash. You can do this with this command:

gdb --pid=`pidof nautilus`

then typing "c" or "continue" and pressing return when you get to the gdb prompt.

Revision history for this message
cnom (cnom) wrote :

Ok, here is the valgrind log. If I want to help with the debugger, do I have to install any debugging stuff? I'm asking because, when I start the debugger, one of the first lines is this:

>Reading symbols from /usr/bin/nautilus...(no debugging symbols found)...done.

Revision history for this message
Otto Schumacher (otto-schumacher) wrote :

OK. I tried to attach gdb to the running nautilus process.
After attaching I opened the Trash.

>gdb --pid=xxxx
(gdb) c
Continuing.
[New Thread 0x7fc7eda82950 (LWP 9398)]
[New Thread 0x7fc7e167f950 (LWP 9399)]
(no debugging symbols found)
[New Thread 0x7fc7da188950 (LWP 9400)]
[Thread 0x7fc7eda82950 (LWP 9398) exited]
[Thread 0x7fc7da188950 (LWP 9400) exited]
[New Thread 0x7fc7da188950 (LWP 9406)]

Program received signal SIGSEGV, Segmentation fault.
0x00007fc7f5689c30 in g_str_hash () from /usr/lib/libglib-2.0.so.0
(gdb) bt
#0 0x00007fc7f5689c30 in g_str_hash () from /usr/lib/libglib-2.0.so.0
#1 0x00007fc7f5658bfd in g_hash_table_lookup () from /usr/lib/libglib-2.0.so.0
#2 0x00007fc7dbc85789 in ?? ()
   from /usr/lib/nautilus/extensions-2.0/libnautilus-ubuntuone.so
#3 0x00000000004b3577 in ?? ()
#4 0x00000000004afeb6 in ?? ()
#5 0x00000000004b12c8 in ?? ()
#6 0x00000000004adc84 in ?? ()
#7 0x00000000004701da in ?? ()
#8 0x0000000000472d8f in ?? ()
#9 0x00007fc7f5d4062e in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#10 0x00007fc7f5d56846 in ?? () from /usr/lib/libgobject-2.0.so.0
#11 0x00007fc7f5d57c8e in g_signal_emit_valist ()
   from /usr/lib/libgobject-2.0.so.0
#12 0x00007fc7f5d58213 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#13 0x00000000004b0cf8 in ?? ()
#14 0x00000000004b0e29 in ?? ()
#15 0x00000000004b102d in ?? ()
#16 0x00007fc7f647cfe5 in ?? () from /usr/lib/libgio-2.0.so.0
#17 0x00007fc7f6499bac in ?? () from /usr/lib/libgio-2.0.so.0
#18 0x00007fc7f56679fe in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#19 0x00007fc7f566b3c8 in ?? () from /usr/lib/libglib-2.0.so.0
#20 0x00007fc7f566b825 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#21 0x00007fc7f6f3f377 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#22 0x000000000044334a in ?? ()
#23 0x00007fc7f3e67606 in __libc_start_main () from /lib/libc.so.6
#24 0x000000000042ffd9 in ?? ()
#25 0x00007fffc270e918 in ?? ()
#26 0x000000000000001c in ?? ()
#27 0x0000000000000001 in ?? ()
#28 0x00007fffc270fc04 in ?? ()
#29 0x0000000000000000 in ?? ()

Revision history for this message
A. Walton (awalton) wrote :

@Conrad: Does that valgrind log capture the crash? At a quick glance I'm not seeing anything out of the ordinary for Nautilus in it.

@otto: you're experiencing lp bug #395710. Update Ubuntu-One.

Revision history for this message
A. Walton (awalton) wrote :

And yes, you need to install Nautilus' debug symbols if you want a chance at solving this crash Conrad.

Revision history for this message
cnom (cnom) wrote :

@AW: No, sorry, forgot to say Nautilus doesn't crash while valgrind is running. I could open the trash, but it didn't show me the contained file, so I closed everything down and submitted the log because I thought it might be useful anyway.

I'll try and install debugging symbols, then.

Revision history for this message
Otto Schumacher (otto-schumacher) wrote :

@AW: Thanks for the hint.
I've updated from Ubuntu One Nightlies repository and nautilus is no longer crashing. Great!
Otto

Revision history for this message
cnom (cnom) wrote :

Here's mine:

[...]

Continuing.
[New Thread 0xb6b9eb90 (LWP 3930)]
[Thread 0xb525bb90 (LWP 3924) exited]
[Thread 0xb6b9eb90 (LWP 3930) exited]
[New Thread 0xb6b9eb90 (LWP 3931)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb6dff750 (LWP 3922)]
0xb7785eeb in g_slice_alloc () from /usr/lib/libglib-2.0.so.0
(gdb) bt
#0 0xb7785eeb in g_slice_alloc () from /usr/lib/libglib-2.0.so.0
#1 0xb7786565 in g_slice_copy () from /usr/lib/libglib-2.0.so.0
#2 0xb7ca8819 in gtk_border_copy () from /usr/lib/libgtk-x11-2.0.so.0
#3 0xb783383c in ?? () from /usr/lib/libgobject-2.0.so.0
#4 0xb7d53eeb in gtk_widget_style_get_valist ()
   from /usr/lib/libgtk-x11-2.0.so.0
#5 0xb7d54066 in gtk_widget_style_get () from /usr/lib/libgtk-x11-2.0.so.0
#6 0xb7d5410f in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#7 0xb7d54277 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#8 0xb7d5a7e6 in gtk_widget_queue_resize () from /usr/lib/libgtk-x11-2.0.so.0
#9 0xb7c02bf3 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#10 0xb7c058f1 in gtk_label_set_markup () from /usr/lib/libgtk-x11-2.0.so.0
#11 0x0808a7d5 in nautilus_path_bar_update_button_appearance (
    button_data=0x9ec3f98) at nautilus-pathbar.c:1289
#12 0x0808bafa in button_data_file_changed (file=0x9edcc80,
    button_data=0x9ec3f98) at nautilus-pathbar.c:1550
#13 0xb784411c in g_cclosure_marshal_VOID__VOID ()
   from /usr/lib/libgobject-2.0.so.0
#14 0xb78360c2 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#15 0xb784caa8 in ?? () from /usr/lib/libgobject-2.0.so.0
#16 0xb784de8d in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#17 0xb784e346 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#18 0x0811cd7c in nautilus_file_emit_changed (file=0x9edcc80)
    at nautilus-file.c:6483
#19 0x0811ccc8 in nautilus_file_changed (file=0x9edcc80)
    at nautilus-file.c:6424
#20 0x080fa499 in dequeue_pending_idle_callback (callback_data=0x9b449c8)
    at nautilus-directory-async.c:990
#21 0x080fa54d in directory_load_done (directory=0x9b449c8, error=0x0)
    at nautilus-directory-async.c:1117
#22 0x080fa7ab in more_files_callback (source_object=0x9c9df88, res=0x9b49eb0,
    user_data=0x9de6980) at nautilus-directory-async.c:2153
#23 0xb7960444 in ?? () from /usr/lib/libgio-2.0.so.0
#24 0xb797e573 in g_simple_async_result_complete ()
   from /usr/lib/libgio-2.0.so.0
#25 0xb797e5be in ?? () from /usr/lib/libgio-2.0.so.0
#26 0xb7765e41 in ?? () from /usr/lib/libglib-2.0.so.0
#27 0xb7767bc8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#28 0xb776b470 in ?? () from /usr/lib/libglib-2.0.so.0
#29 0xb776b8df in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#30 0xb7c15c49 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#31 0x08080d96 in main (argc=1, argv=0xbfdf80b4) at nautilus-main.c:518

Revision history for this message
Przemysław Kochański (kochas315) wrote :

Upgrading to 9.10 fixes the problem.

Revision history for this message
cnom (cnom) wrote :

Ok, don't waste any time on this one. It's probably something to do with a few karmic packages I pulled into a jaunty system. As I can still access the ~/.local/share/Trash/ folder, I'll just wait for the karmic beta to see if the problem persists and reopen accordingly.

Changed in nautilus (Ubuntu):
status: Incomplete → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.