[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fuse-devel
Subject:    Re: [fuse-devel] Fuse hanging in getdents
From:       Miklos Szeredi <miklos () szeredi ! hu>
Date:       2011-06-08 15:47:38
Message-ID: 87aadscokl.fsf () tucsk ! pomaz ! szeredi ! hu
[Download RAW message or body]

Hi Franco,

Franco <franco@fugro-fsi.com.au> writes:

> Hi Miklos
>
> I never did get to the bottom of this problem, it still happens
> occasionally and we usually just restart the filesystem.
>
> I currently have a filesystem that's stuck so I can send you any
> information you need that might help figure out what's going on.
>
> The problem seems to have started when a user tried to delete a whole
> bunch of files, here's the kernel trace of the thread doing the unlink:
>
> squirrel      D 0000000000000000     0 20981      1 0x00000004
>  ffff88082cdd47f0 0000000000000086 0000000000000292 0000000000000246
>  0000000000000003 0000000000004000 0000000000012bc0 000000000000de20
>  ffff88021ea495a8 ffff88021ea495a8 ffff880827c740c0 ffff880827c74450
> Call Trace:
>  [<ffffffff8105a23b>] ? getnstimeofday+0x55/0xaf
>  [<ffffffff81091dfc>] ? sync_page+0x0/0x46
>  [<ffffffff8132cf77>] ? io_schedule+0x63/0xa5
>  [<ffffffff81091e3d>] ? sync_page+0x41/0x46
>  [<ffffffff8132d3b8>] ? __wait_on_bit_lock+0x3f/0x85
>  [<ffffffff81091de8>] ? __lock_page+0x5d/0x63
>  [<ffffffff81053f1c>] ? wake_bit_function+0x0/0x23
>  [<ffffffff81099920>] ? pagevec_lookup+0x17/0x1e
>  [<ffffffff8109a98b>] ? truncate_inode_pages_range+0x28d/0x31d
>  [<ffffffff810d33a6>] ? generic_delete_inode+0xa6/0x114
>  [<ffffffff810cbc4e>] ? do_unlinkat+0xe2/0x134
>  [<ffffffff81147991>] ? selinux_cred_prepare+0x12/0x27
>  [<ffffffff8104de2d>] ? sys_setfsgid+0x95/0xa1
>  [<ffffffff8100b9ab>] ? system_call_fastpath+0x16/0x1b
>
> All other access to the same directory just hang. I can strace ls and it
> stops in getdents. The last thing the filesystem does is call openidr.

This unlink is hanging on a page lock.   All the other things are
hanging because unlink is holding i_mutex on the parent dir, so my guess
was right.

The question is, who is holding the page lock?  It's not possible to
tell from this trace, but maybe if you sent the full dump with all the
processes then that might show what's happening.

Thanks,
Miklos

------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
fuse-devel mailing list
fuse-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fuse-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic