nautilus crashed with SIGSEGV in g_str_hash() [ubuntuone_nautilus_observed_file_unref]

Bug #680968 reported by Matt Zimmerman
214
This bug affects 16 people
Affects Status Importance Assigned to Milestone
ubuntuone-client (Ubuntu)
Triaged
High
Ubuntu One Client Engineering team

Bug Description

This crash happens when a user is copying/cutting and pasting the files/folders between local and remote storage. The code that removes references to NautilusFileInfo does not check whether the file is indeed a local one. NautilusFileInfo can change its underlying path in case the file is being cut (copied) and pasted to the remote storage.

It happened while I was copying a large file to an SMB share. After nautilus restarted, I restarted the copy operation, and it completed successfully.

ProblemType: Crash
DistroRelease: Ubuntu 10.10
Package: ubuntuone-client-gnome 1.4.5-0ubuntu1
ProcVersionSignature: Ubuntu 2.6.35-23.40-generic 2.6.35.7
Uname: Linux 2.6.35-23-generic x86_64
Architecture: amd64
CrashCounter: 1
Date: Wed Nov 24 14:39:34 2010
ExecutablePath: /usr/bin/nautilus
ProcCmdline: nautilus
ProcEnviron:
 PATH=(custom, user)
 LANG=en_GB.utf8
 SHELL=/bin/zsh
SegvAnalysis:
 Segfault happened at: 0x7f18bd8a6ec0 <g_str_hash>: movsbl (%rdi),%eax
 PC (0x7f18bd8a6ec0) ok
 source "(%rdi)" (0x00000000) not located in a known VMA region (needed readable region)!
 destination "%eax" ok
SegvReason: reading NULL VMA
Signal: 11
SourcePackage: ubuntuone-client
StacktraceTop:
 g_str_hash () from /lib/libglib-2.0.so.0
 g_hash_table_lookup () from /lib/libglib-2.0.so.0
 ?? () from /usr/lib/nautilus/extensions-2.0/libnautilus-ubuntuone.so
 ?? () from /usr/lib/libgobject-2.0.so.0
 g_datalist_id_set_data_full () from /lib/libglib-2.0.so.0
Title: nautilus crashed with SIGSEGV in g_str_hash()
UserGroups: adm admin audio cdrom dialout fuse kvm libvirtd lpadmin plugdev sambashare video

Revision history for this message
Matt Zimmerman (mdz) wrote :
Revision history for this message
Apport retracing service (apport) wrote :

StacktraceTop:
 g_str_hash () from /lib/libglib-2.0.so.0
 g_hash_table_lookup () from /lib/libglib-2.0.so.0
 ubuntuone_nautilus_observed_file_unref (
 g_value_get_object ()
 ?? () from /lib/libpthread.so.0

Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
Changed in ubuntuone-client (Ubuntu):
importance: Undecided → Medium
tags: removed: need-amd64-retrace
Matt Zimmerman (mdz)
visibility: private → public
summary: nautilus crashed with SIGSEGV in g_str_hash()
+ [ubuntuone_nautilus_observed_file_unref]
Revision history for this message
Roman Yepishev (rye) wrote :

This is what currently happening for me during one of the tests:

ubuntuone_nautilus_observed_file_unref file=0x112ad90
ubuntuone_nautilus_observed_file_unref uri=davs://storage.lappyfamily.net/Stuff/test/DSC00806.JPG
ubuntuone_nautilus_observed_file_unref path=(null)

I believe uon->observed should contain not the path as the key but the pointer to NautilusFileInfo structure. Later on dereferencing should be handled by removing the NautilsFileInfo using the pointer. This will prevent the leaks of the hash table entries which will happen in case we simply discard the URIs that do not return local paths.

description: updated
Changed in ubuntuone-client (Ubuntu):
assignee: nobody → Ubuntu One Desktop+ team (ubuntuone-desktop+)
status: New → Confirmed
status: Confirmed → Triaged
dobey (dobey)
Changed in ubuntuone-client (Ubuntu):
importance: Medium → High
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.