-CURRENT panics in NFS

Rick Macklem rmacklem at uoguelph.ca
Sat Feb 27 15:53:19 UTC 2021


I reproduced the problem and the attached trivial patch
seems to fix it. Please test the patch if you can.

Mateusz, I assume the directory shouldn't try and add
a cache entry for itself?
I don't test NFSv3 much and I don't test "rdirplus"
much, so it slipped through the cracks.

Thanks for reporting it, rick

________________________________________
From: owner-freebsd-current at freebsd.org <owner-freebsd-current at freebsd.org> on behalf of Juraj Lutter <otis at FreeBSD.org>
Sent: Saturday, February 27, 2021 9:31 AM
To: freebsd-current
Subject: Re: -CURRENT panics in NFS

CAUTION: This email originated from outside of the University of Guelph. Do not click links or open attachments unless you recognize the sender and know the content is safe. If in doubt, forward suspicious emails to IThelp at uoguelph.ca


And a kgdb backtrace:

(kgdb) bt
#0  __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:55
#1  doadump (textdump=textdump at entry=0) at /usr/src/sys/kern/kern_shutdown.c:399
#2  0xffffffff804c7b2a in db_dump (dummy=<optimized out>, dummy2=<unavailable>, dummy3=<unavailable>, dummy4=<unavailable>) at /usr/src/sys/ddb/db_command.c:575
#3  0xffffffff804c78ee in db_command (last_cmdp=<optimized out>, cmd_table=<optimized out>, dopager=dopager at entry=1) at /usr/src/sys/ddb/db_command.c:482
#4  0xffffffff804c762d in db_command_loop () at /usr/src/sys/ddb/db_command.c:535
#5  0xffffffff804cac36 in db_trap (type=<optimized out>, code=<optimized out>) at /usr/src/sys/ddb/db_main.c:270
#6  0xffffffff80c59d04 in kdb_trap (type=type at entry=3, code=code at entry=0, tf=<optimized out>, tf at entry=0xfffffe00d01c3d40) at /usr/src/sys/kern/subr_kdb.c:727
#7  0xffffffff810bc1ee in trap (frame=0xfffffe00d01c3d40) at /usr/src/sys/amd64/amd64/trap.c:576
#8  <signal handler called>
#9  kdb_enter (why=0xffffffff812accc9 "panic", msg=<optimized out>) at /usr/src/sys/kern/subr_kdb.c:506
#10 0xffffffff80c0d5d2 in vpanic (fmt=<optimized out>, ap=<optimized out>, ap at entry=0xfffffe00d01c3ea0) at /usr/src/sys/kern/kern_shutdown.c:907
#11 0xffffffff80c0d363 in panic (fmt=0xffffffff81e9a178 <cnputs_mtx> "\177\256&\201\377\377\377\377") at /usr/src/sys/kern/kern_shutdown.c:843
#12 0xffffffff80cd6d74 in cache_enter_time (dvp=0xfffff80079321e00, vp=0xfffff80079321e00, cnp=cnp at entry=0xfffffe00d01c4030, tsp=tsp at entry=0xfffffe00d01c40e0, dtsp=<optimized out>)
    at /usr/src/sys/kern/vfs_cache.c:2274
#13 0xffffffff80ae2bd6 in nfsrpc_readdirplus (vp=<optimized out>, vp at entry=0xfffff80079321e00, uiop=<optimized out>, uiop at entry=0xfffffe00d01c4540,
    cookiep=cookiep at entry=0xfffffe00d01c44e0, cred=cred at entry=0xfffff80079307e00, p=<optimized out>, p at entry=0xfffffe00de06be00, nap=nap at entry=0xfffffe00d01c4400,
    attrflagp=0xfffffe00d01c44f0, eofp=0xfffffe00d01c44f4, stuff=0x0) at /usr/src/sys/fs/nfsclient/nfs_clrpcops.c:3766
#14 0xffffffff80aed4ec in ncl_readdirplusrpc (vp=vp at entry=0xfffff80079321e00, uiop=uiop at entry=0xfffffe00d01c4540, cred=0xfffff80079307e00, td=td at entry=0xfffffe00de06be00)
    at /usr/src/sys/fs/nfsclient/nfs_clvnops.c:2490
#15 0xffffffff80afdc93 in ncl_doio (vp=vp at entry=0xfffff80079321e00, bp=bp at entry=0xfffffe000ee1c610, cr=0xfffffe00d01c3d00, cr at entry=0xfffff80079307e00, td=td at entry=0xfffffe00de06be00,
    called_from_strategy=called_from_strategy at entry=0) at /usr/src/sys/fs/nfsclient/nfs_clbio.c:1686
#16 0xffffffff80afce3c in ncl_bioread (vp=<optimized out>, vp at entry=0xfffff80079321e00, uio=<optimized out>, ioflag=ioflag at entry=0, cred=<optimized out>)
    at /usr/src/sys/fs/nfsclient/nfs_clbio.c:604
#17 0xffffffff80af1baf in nfs_readdir (ap=ap at entry=0xfffffe00d01c4918) at /usr/src/sys/fs/nfsclient/nfs_clvnops.c:2383
#18 0xffffffff80ce490f in vop_sigdefer (vop=<optimized out>, a=0xfffffe00d01c4918) at /usr/src/sys/kern/vfs_default.c:1471
#19 0xffffffff81181f38 in VOP_READDIR_APV (vop=0xffffffff81af00d8 <newnfs_vnodeops>, a=a at entry=0xfffffe00d01c4918) at vnode_if.c:1939
#20 0xffffffff80d0b23b in VOP_READDIR (vp=0xfffff80079321e00, uio=0xfffffe00d01c48d0, cred=<optimized out>, eofflag=0xfffffe00d01c48cc, ncookies=0x0, cookies=0x0) at ./vnode_if.h:985
#21 kern_getdirentries (td=<optimized out>, fd=<optimized out>, buf=0x801851000 <error: Cannot access memory at address 0x801851000>, count=4096, basep=basep at entry=0xfffffe00d01c49b0,
    residp=residp at entry=0x0, bufseg=UIO_USERSPACE) at /usr/src/sys/kern/vfs_syscalls.c:4142
#22 0xffffffff80d0b449 in sys_getdirentries (td=0xffffffff81e9a178 <cnputs_mtx>, uap=0xfffffe00de06c1e8) at /usr/src/sys/kern/vfs_syscalls.c:4089
#23 0xffffffff810bd00e in syscallenter (td=<optimized out>) at /usr/src/sys/amd64/amd64/../../kern/subr_syscall.c:189
#24 amd64_syscall (td=0xfffffe00de06be00, traced=0) at /usr/src/sys/amd64/amd64/trap.c:1156
#25 <signal handler called>
#26 0x00000008012a83fa in ?? ()
Backtrace stopped: Cannot access memory at address 0x7fffffffd928

—
Juraj Lutter
XMPP: juraj (at) lutter.sk
GSM: +421907986576

> On 27 Feb 2021, at 15:18, Juraj Lutter <otis at FreeBSD.org> wrote:
>
> Reliably reproducible:
>

_______________________________________________
freebsd-current at freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rdirplus.patch
Type: application/octet-stream
Size: 468 bytes
Desc: rdirplus.patch
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20210227/a2f20ad9/attachment.obj>


More information about the freebsd-current mailing list