Bug 441861 - gvfs fusedaemon segfaults
Summary: gvfs fusedaemon segfaults
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: gvfs
Version: rawhide
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Tomáš Bžatek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-04-10 15:47 UTC by Jesse Keating
Modified: 2015-03-03 22:32 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-04-13 12:49:45 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Jesse Keating 2008-04-10 15:47:14 UTC
Getting this when trying to communicate with my ipod touch over sftp.  


Apr 10 11:44:02 localhost kernel: gvfs-fuse-daemo[31233]: segfault at 24000b90
ip 4043d0 sp 42eecf10 error 4 in gvfs-fuse-daemon[400000+6000]

Comment 1 Jesse Keating 2008-04-10 16:28:40 UTC
(gdb) continue
Continuing.
[New Thread 0x44383950 (LWP 1528)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x43982950 (LWP 31869)]
vfs_read (path=<value optimized out>, buf=0x7fb7d4008550 "\001", size=4096,
offset=0, fi=<value optimized out>) at gvfsfusedaemon.c:1169
1169	      g_mutex_lock (fh->mutex);
Current language:  auto; currently c
(gdb) bg
Undefined command: "bg".  Try "help".
(gdb) bt
#0  vfs_read (path=<value optimized out>, buf=0x7fb7d4008550 "\001", size=4096,
offset=0, fi=<value optimized out>) at gvfsfusedaemon.c:1169
#1  0x00007fb7dc1c6b25 in fuse_lib_read (req=0x7fb7d40008f0, ino=12, size=4096,
off=0, fi=0x43982010) at fuse.c:1959
#2  0x00007fb7dc1cb599 in do_read (req=0x5, nodeid=2, inarg=<value optimized
out>) at fuse_lowlevel.c:623
#3  0x00007fb7dc1c8f2f in fuse_do_work (data=<value optimized out>) at
fuse_loop_mt.c:100
#4  0x00007fb7db99240a in start_thread (arg=<value optimized out>) at
pthread_create.c:297
#5  0x00007fb7db6ff78d in clone () from /lib64/libc.so.6


(gdb) bt full
#0  vfs_read (path=<value optimized out>, buf=0x7fb7d4008550 "\001", size=4096,
offset=0, fi=<value optimized out>) at gvfsfusedaemon.c:1169
	fh = (FileHandle *) 0xd4002600
	file = (GFile *) 0xbeca40
	result = -5
#1  0x00007fb7dc1c6b25 in fuse_lib_read (req=0x7fb7d40008f0, ino=12, size=4096,
off=0, fi=0x43982010) at fuse.c:1959
	d = {id = 0, cond = {__data = {__lock = -738197472, __futex = 32695,
__total_seq = 140427629338640, __wakeup_seq = 128, 
      __woken_seq = 101056, __mutex = 0x7fb7d4008540, __nwaiters = 3684198816,
__broadcast_seq = 32695}, 
    __size = "
\000\000Է\177\000\000\020��ڷ\177\000\000\200\000\000\000\000\000\000\000�\212\001\000\000\000\000\000@\205\000Է\177\000\000�i\230۷\177\000",
__align = 140427512512544}, finished = -613846662}
	f = (struct fuse *) 0xb9dd70
	path = <value optimized out>
	buf = 0x1 <Address 0x1 out of bounds>
	res = <value optimized out>
#2  0x00007fb7dc1cb599 in do_read (req=0x5, nodeid=2, inarg=<value optimized
out>) at fuse_lowlevel.c:623
	fi = {flags = 0, fh_old = 3556779520, writepage = 0, direct_io = 0, keep_cache
= 0, flush = 0, padding = 0, fh = 3556779520, lock_owner = 0}
#3  0x00007fb7dc1c8f2f in fuse_do_work (data=<value optimized out>) at
fuse_loop_mt.c:100
	isforget = 0
	ch = (struct fuse_chan *) 0xb9ca60
	res = 1
	w = (struct fuse_worker *) 0xbeaa50
	mt = (struct fuse_mt *) 0x7fffe4fc1e00
#4  0x00007fb7db99240a in start_thread (arg=<value optimized out>) at
pthread_create.c:297
	__res = <value optimized out>
	pd = (struct pthread *) 0x43982950
	unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 2192735663715779268, 0, 3338240,
0, 140427640028736, 2192881691548975812, 
        -2233329917959994684}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0,
0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
	not_first_call = <value optimized out>
	robust = <value optimized out>
#5  0x00007fb7db6ff78d in clone () from /lib64/libc.so.6
	__elf_set___libc_subfreeres_element_fstab_free__ = (const void *) 0x7fb7db73c7e0
	fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {mnt_fsname = 0x0,
mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0, mnt_freq = 0, 
    mnt_passno = 0}, fs_ret = {fs_spec = 0x0, fs_file = 0x0, fs_vfstype = 0x0,
fs_mntops = 0x0, fs_type = 0x0, fs_freq = 0, fs_passno = 0}}


Comment 2 Matthias Clasen 2008-04-11 15:20:11 UTC
Is this on a 64bit machine ?

Comment 3 Jesse Keating 2008-04-11 17:54:49 UTC
Yes it is.  I'm going to jailbreak the ipod in a different way to see if that
has any effect upon the ssh mount.

Comment 4 Matthias Clasen 2008-04-12 02:52:43 UTC
I suspect what you are seeing is 

#define GET_FILE_HANDLE(fi)     (GUINT_TO_POINTER ((guint) (fi)->fh))
#define SET_FILE_HANDLE(fi, fh) ((fi)->fh = (guint64) GPOINTER_TO_UINT (fh))

being not 64-bit clean

Comment 5 Matthias Clasen 2008-04-12 03:07:34 UTC
Jesse, please try with gvfs-0.2.3-2.fc9 when it finishes building.

If that fixes your crash, we should tag it for f9-final.

Comment 6 Jesse Keating 2008-04-13 12:49:45 UTC
That makes it a lot more stable in my limited testing.  I'd say we're good to tag.


Note You need to log in before you can comment on or make changes to this bug.