Reproducable deadlock in NFS client
Rick Macklem
rmacklem at uoguelph.ca
Thu Oct 3 23:28:11 UTC 2019
Hi Peter,
You could try a couple of things:
1 - kib@ just put a patch up on phabricator that reorganizes the handling
of vnode_pager_setsize().
D21883
(If you could test this patch, that might be the best approach.)
or
2 - The only differences between the post r352392 code and the older stuff
is that it calls vnode_pager_setsize() when the size hasn't changed.
I can't think of why that might cause a problem, but??
I have a patch in phabricator D21814 that doesn't do the
vnode_pager_setsize() call when the size doesn't change.
--> If this patch were to avoid the hang, it could help diagnose the
problem.
The other difference is that it called vnode_pager_setsize() when there
was a small change, but not enough to affect a page boundary. I can't think
of how this would affect things either, but..
or
If you can't test either of the above patches, you could try reverting both
r352393 and r352457, which would put things back the way they've been
for years, to see if that works ok.
Good luck with it, rick
ps: Btw, capturing "procstat -kk" and "ps axHl" would give you/us more info.
(The "H" on "ps" shows the iod threads.)
If you can drop into the debugger when it is hung as above, you could
capture the stuff listed here:
https://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/kerneldebug-deadlocks.html
More information about the freebsd-current
mailing list