Abort in get_node()

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Abort in get_node()

Franco Broi
#5  0xb7fd8a5b in do_open (f=0x804d0b0, in=0x8070060, arg=0x8070084)
    at fuse.c:1069
1069        path = get_path(f, in->nodeid);

(gdb) p path
$12 = 0x8070060 "("

path looks a bit odd, could this be something I've done?


fuse init (API version 7.1)
fuse distribution version: 2.3-pre7


#0  0xffffe410 in ?? ()
#1  0x00215872 in ?? ()
#2  0xb7fd6bb1 in get_node () at fuse.c:176
#3  0xb7fd7152 in get_path_name (f=0x804d0b0, nodeid=2289, name=0x0)
    at fuse.c:369
#4  0xb7fd7217 in get_path (f=0x804d0b0, nodeid=2289) at fuse.c:392
#5  0xb7fd8a5b in do_open (f=0x804d0b0, in=0x8070060, arg=0x8070084)
    at fuse.c:1069
#6  0xb7fda25c in fuse_process_cmd (f=0x804d0b0, cmd=0x806cb10) at
fuse.c:1868
#7  0xb7fdad5e in do_work (data=0x80688f8) at fuse_mt.c:85
#8  0x0042698c in ?? ()


(gdb) p *f
$9 = {flags = 0, fd = 3, op = {getattr = 0x8049620 <sfs_getattr>,
    readlink = 0x804973c <sfs_readlink>, getdir = 0x80497b8
<sfs_getdir>,
    mknod = 0x804988c <sfs_mknod>, mkdir = 0x8049a1c <sfs_mkdir>,
    unlink = 0x8049a84 <sfs_unlink>, rmdir = 0x8049b14 <sfs_rmdir>,
    symlink = 0x8049bc0 <sfs_symlink>, rename = 0x8049c64 <sfs_rename>,
    link = 0x8049ef8 <sfs_link>, chmod = 0x8049f40 <sfs_chmod>,
    chown = 0x8049fa4 <sfs_chown>, truncate = 0x804a008 <sfs_truncate>,
    utime = 0x804a074 <sfs_utime>, open = 0x804a0d8 <sfs_open>,
    read = 0x804a1a0 <sfs_read>, write = 0x804a2c0 <sfs_write>,
    statfs = 0x804a32c <sfs_statfs>, flush = 0,
    release = 0x804a528 <sfs_release>, fsync = 0x804a590 <sfs_fsync>,
    setxattr = 0, getxattr = 0x804a598 <sfs_getxattr>, listxattr = 0,
    removexattr = 0, opendir = 0, readdir = 0, releasedir = 0, fsyncdir
= 0,
    init = 0, destroy = 0}, compat = 0, name_table = 0x804d1a8,
  name_table_size = 14057, id_table = 0x805ad50, id_table_size = 14057,
  ctr = 2290, generation = 0, hidectr = 0, lock = {__m_reserved = 2,
    __m_count = 0, __m_owner = 0x354f, __m_kind = 0, __m_lock =
{__status = 1,
      __spinlock = 0}}, worker_lock = {__m_reserved = 0, __m_count = 0,
    __m_owner = 0x0, __m_kind = 0, __m_lock = {__status = 0, __spinlock
= 0}},
  numworker = 6, numavail = 2, exited = 0, got_init = 1, user_data =
0x0,
  major = 5, minor = 1, owner = 301}
(gdb) p *in
$10 = {len = 40, opcode = 14, unique = 50262710, nodeid = 2289, uid =
301,
  gid = 200, pid = 13693, padding = 32768}
(gdb) p *(struct fuse_open_in *) inarg
$11 = {flags = 32768, padding = 0}




-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Abort in get_node()

Miklos Szeredi
> #5  0xb7fd8a5b in do_open (f=0x804d0b0, in=0x8070060, arg=0x8070084)
>     at fuse.c:1069
> 1069        path = get_path(f, in->nodeid);
>
> (gdb) p path
> $12 = 0x8070060 "("
>
> path looks a bit odd, could this be something I've done?

It hasn't yet returned a path, so it's just random junk, which is
perfectly OK.

> fuse init (API version 7.1)
> fuse distribution version: 2.3-pre7
[...]
>   major = 5, minor = 1, owner = 301}

There's something very fishy here.  The library thinks it's talking to
a kernel API version 5/1 and you think the kernel API version is 7/1.
I'd tend to belive the library here :), so you've got something mixed
up.

Still, that doesn't explain the bug.  It's not the usual FORGET race
because now it happens in OPEN.  Mysterious.  I'll think about it.

Thanks,
Miklos


-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Abort in get_node()

Franco Broi

> > fuse init (API version 7.1)
> > fuse distribution version: 2.3-pre7
> [...]
> >   major = 5, minor = 1, owner = 301}
>
> There's something very fishy here.  The library thinks it's talking to
> a kernel API version 5/1 and you think the kernel API version is 7/1.
> I'd tend to belive the library here :), so you've got something mixed
> up.


Could be, I thought I'd updated the kernel module on all machines but
maybe I missed this one. It's been rebooted and now appears to be
running 7.1.  I'll let you know if it happens again.



-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
_______________________________________________
fuse-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/fuse-devel
Loading...