[PATCH] Fix bug #13121 - Non-smbd processes using kernel oplocks can hang smbd

Andrew Bartlett abartlet at samba.org
Wed Nov 29 04:37:57 UTC 2017


On Wed, 2017-11-29 at 16:32 +1300, Andrew Bartlett wrote:
> On Tue, 2017-11-28 at 19:21 -0800, Jeremy Allison wrote:
> > 
> > I can take a look, but right now everything is pointing to
> > a problem in your cloud environment. Gary, you said you'd
> > been able to reproduce it - was that on a local build ?
> 
> Gary thought he did reproduce it under load (while working), but
> naturally like all load-induced things it went away again.

I've reproduced it locally with the attached patch.  I'm on Debian 9.2
Stable

Linux ruth 4.9.0-4-amd64 #1 SMP Debian 4.9.51-1 (2017-09-28) x86_64
GNU/Linux

It failed after an hour with:

[1040(8312)/9999 at 1h7m49s] samba3.smb2.kernel-oplocks(nt4_dc)
Bad child exit code 10
UNEXPECTED(error): samba3.smb2.kernel-oplocks.kernel_oplocks8(nt4_dc)
REASON: Exception: Exception: Unknown error/failure. Missing torture_fail() or torture_assert_*() call?
command: /data/samba/git/samba6/bin/smbtorture  $LOADLIST --configfile=$SMB_CONF_PATH --option='fss:sequence timeout=1' --maximum-runtime=$SELFTEST_MAXTIME --basedir=$SELFTEST_TMPDIR --format=subunit --option=torture:progress=no --option=torture:sharedelay=100000 --option=torture:writetimeupdatedelay=500000 --target=samba3 //$SERVER/kernel_oplocks -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share smb2.kernel-oplocks 2>&1  | /data/samba/git/samba6/selftest/filter-subunit --fail-on-empty --prefix="samba3.smb2.kernel-oplocks." --suffix="(nt4_dc)"
expanded command: /data/samba/git/samba6/bin/smbtorture  $LOADLIST --configfile=/data/samba/git/samba6/st/client/client.conf --option='fss:sequence timeout=1' --maximum-runtime=1200 --basedir=/data/samba/git/samba6/st/tmp --format=subunit --option=torture:progress=no --option=torture:sharedelay=100000 --option=torture:writetimeupdatedelay=500000 --target=samba3 //LOCALNT4DC2/kernel_oplocks -Uabartlet%localntdc2pass --option=torture:localdir=/data/samba/git/samba6/st/nt4_dc/share smb2.kernel-oplocks 2>&1  | /data/samba/git/samba6/selftest/filter-subunit --fail-on-empty --prefix="samba3.smb2.kernel-oplocks." --suffix="(nt4_dc)"
ERROR: Testsuite[samba3.smb2.kernel-oplocks(nt4_dc)]
REASON: Exit code was 1

 errors[1]

[1041(8320)/9999 at 1h7m57s, 1 errors] samba3.smb2.kernel-oplocks(nt4_dc)
[1042(8328)/9999 at 1h8m6s, 1 errors] samba3.smb2.kernel-oplocks(nt4_dc)
Bad child exit code 10
UNEXPECTED(error): samba3.smb2.kernel-oplocks.kernel_oplocks8(nt4_dc)
REASON: Exception: Exception: Unknown error/failure. Missing torture_fail() or torture_assert_*() call?
command: /data/samba/git/samba6/bin/smbtorture  $LOADLIST --configfile=$SMB_CONF_PATH --option='fss:sequence timeout=1' --maximum-runtime=$SELFTEST_MAXTIME --basedir=$SELFTEST_TMPDIR --format=subunit --option=torture:progress=no --option=torture:sharedelay=100000 --option=torture:writetimeupdatedelay=500000 --target=samba3 //$SERVER/kernel_oplocks -U$USERNAME%$PASSWORD --option=torture:localdir=$SELFTEST_PREFIX/nt4_dc/share smb2.kernel-oplocks 2>&1  | /data/samba/git/samba6/selftest/filter-subunit --fail-on-empty --prefix="samba3.smb2.kernel-oplocks." --suffix="(nt4_dc)"
expanded command: /data/samba/git/samba6/bin/smbtorture  $LOADLIST --configfile=/data/samba/git/samba6/st/client/client.conf --option='fss:sequence timeout=1' --maximum-runtime=1200 --basedir=/data/samba/git/samba6/st/tmp --format=subunit --option=torture:progress=no --option=torture:sharedelay=100000 --option=torture:writetimeupdatedelay=500000 --target=samba3 //LOCALNT4DC2/kernel_oplocks -Uabartlet%localntdc2pass --option=torture:localdir=/data/samba/git/samba6/st/nt4_dc/share smb2.kernel-oplocks 2>&1  | /data/samba/git/samba6/selftest/filter-subunit --fail-on-empty --prefix="samba3.smb2.kernel-oplocks." --suffix="(nt4_dc)"
ERROR: Testsuite[samba3.smb2.kernel-oplocks(nt4_dc)]
REASON: Exit code was 1

 errors[1]


Andrew Bartlett

-- 
Andrew Bartlett
https://samba.org/~abartlet/
Authentication Developer, Samba Team         https://samba.org
Samba Development and Support, Catalyst IT   
https://catalyst.net.nz/services/samba



-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-HACK-put-oplock-test-in-a-loop.patch
Type: text/x-patch
Size: 1017 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20171129/be536d1e/0001-HACK-put-oplock-test-in-a-loop.bin>


More information about the samba-technical mailing list