hang in rpccon from interrupting NFS operations (Re: pointyhat panic)

Rick Macklem rmacklem at uoguelph.ca
Mon Jun 22 01:19:39 UTC 2009



On Sun, 21 Jun 2009, Kris Kennaway wrote:

>
> Got another deadlock after upgrading.  Again, busy NFS volume, and ^C'ing a 
> recursive find hung in rpccon state:
>
> db> bt 89596
> Tracing pid 89596 tid 102493 td 0xffffff0089260000
> sched_switch() at sched_switch+0x17c
> mi_switch() at mi_switch+0x21d
> sleepq_switch() at sleepq_switch+0x123
> sleepq_timedwait() at sleepq_timedwait+0x4d
> _sleep() at _sleep+0x301
> clnt_reconnect_call() at clnt_reconnect_call+0x5d3
> nfs_request() at nfs_request+0x225
> nfs_statfs() at nfs_statfs+0x197
> __vfs_statfs() at __vfs_statfs+0x28
> kern_fstatfs() at kern_fstatfs+0x286
> fstatfs() at fstatfs+0x34
> syscall() at syscall+0x1af
> Xfast_syscall() at Xfast_syscall+0xd0
> --- syscall (397, FreeBSD ELF64, fstatfs), rip = 0x800726dcc, rsp = 
> 0x7fffffffe1a8, rbp = 0x1000 ---
>
> These are mounted with intr, I'll try disabling that next.
>
There are two sleeps in clnt_rc.c. One of them optionally does a PCATCH
and returns when interrupted via ^C, but the other one (which it is
sleeping on above), doesn't. I've emailed Kris a small patch that
changes that for him to test.

If anyone else wants to test the patch, just email me for a copy, rick



More information about the freebsd-current mailing list