re: Reproducable deadlock in NFS client

From: Rick Macklem <rmacklem_at_uoguelph.ca>
Date: Thu, 3 Oct 2019 23:28:07 +0000
Hi Peter,

You could try a couple of things:
1 - kib_at_ 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


Received on Thu Oct 03 2019 - 21:28:11 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:22 UTC