Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Oct 2019 23:28:07 +0000
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        Peter Jeremy <peter@rulingia.com>, "freebsd-current@FreeBSD.org" <freebsd-current@FreeBSD.org>
Subject:   re: Reproducable deadlock in NFS client
Message-ID:  <YTOPR0101MB1163001233FBD6E7DFEE0790DD9F0@YTOPR0101MB1163.CANPRD01.PROD.OUTLOOK.COM>

next in thread | raw e-mail | index | archive | help

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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?YTOPR0101MB1163001233FBD6E7DFEE0790DD9F0>