[Bug 257043] NFS nfsrpc_readdirplus() panic

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 07 Jul 2021 17:52:33 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257043

            Bug ID: 257043
           Summary: NFS nfsrpc_readdirplus() panic
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: dgilbert@eicat.ca

Server: Threadripper 1900 with 40T ZFS array running 13.0.

Client: HiFive Unmatched RISC-V running 14-CURRENT.  I believe the most recent
commit was ed0a582d88f7cb8deea9b6fbe6dade43911c0dd7 on Sat Jun 19 17:50:11 2021
+0200.

I was on the client, and wanted to fetch an img to put onto a usb stick.  I
cd'd into NFS to where the image was stored.  As I discovered it was bz2'd (ll
to read dir), I flipped back to the server's shell and pbunzip2'd (much faster
--- .bz2 disappears, .img appears).  I flipped back to the client and did "ll"
again --- at which point, client panic'd.

I'm going to paste part of the bt here.  Links below to the kernel,
kernel.debug, vmcore.

#11 0xffffffc000343466 in panic (fmt=0xffffffc000829fb0 <kdb_why> "\372Rg")
    at /home/dgilbert/FreeBSD/src/sys/kern/kern_shutdown.c:843
#12 0xffffffc0003f1916 in cache_enter_time (dvp=<optimized out>, vp=<optimized
out>, cnp=<optimized out>,
    tsp=<optimized out>, dtsp=<optimized out>) at
/home/dgilbert/FreeBSD/src/sys/kern/vfs_cache.c:2471
#13 0xffffffc000237834 in nfsrpc_readdirplus (vp=<optimized out>,
uiop=0xffffffc2204d56c8, cookiep=0xffffffc2204d5580,
    cred=<optimized out>, p=<optimized out>, nap=0xffffffc2204d5588,
attrflagp=0xffffffc2204d557c,
    eofp=<optimized out>, stuff=0x0) at
/home/dgilbert/FreeBSD/src/sys/fs/nfsclient/nfs_clrpcops.c:3765
#14 0xffffffc0002423a0 in ncl_readdirplusrpc (vp=0xffffffd2591fa1c0,
uiop=0xffffffc2204d56c8, cred=0xffffffd033b29700,
    td=0xffffffc221787b00) at
/home/dgilbert/FreeBSD/src/sys/fs/nfsclient/nfs_clvnops.c:2506
#15 0xffffffc000251648 in ncl_doio (vp=0xffffffd2591fa1c0,
bp=0xffffffc001876b90, cr=0xffffffd033b29700,
    td=0xffffffc221787b00, called_from_strategy=<optimized out>)
    at /home/dgilbert/FreeBSD/src/sys/fs/nfsclient/nfs_clbio.c:1696
#16 0xffffffc000250984 in ncl_bioread (vp=0xffffffd2591fa1c0,
uio=0xffffffc2204d5a88, ioflag=<optimized out>,
    cred=<optimized out>) at
/home/dgilbert/FreeBSD/src/sys/fs/nfsclient/nfs_clbio.c:607
#17 0xffffffc0002463e8 in nfs_readdir (ap=0xffffffc2204d5ac0)
    at /home/dgilbert/FreeBSD/src/sys/fs/nfsclient/nfs_clvnops.c:2394
#18 0xffffffc0003fef14 in vop_sigdefer (vop=<optimized out>,
a=0xffffffc2204d5ac0)
    at /home/dgilbert/FreeBSD/src/sys/kern/vfs_default.c:1499
#19 0xffffffc000241b86 in nfs_vnodeops_bypass (a=0xf2cf08918fe95d7a)
    at /home/dgilbert/FreeBSD/src/sys/fs/nfsclient/nfs_clvnops.c:209
#20 0xffffffc0005dcd84 in VOP_READDIR_APV (vop=0xffffffc000765110
<newnfs_vnodeops>, a=0xffffffc2204d5ac0)
    at vnode_if.c:1939
#21 0xffffffc000421212 in VOP_READDIR (vp=<optimized out>, uio=<optimized out>,
cred=<optimized out>,
    eofflag=<optimized out>, ncookies=<optimized out>, cookies=<optimized out>)
at ./vnode_if.h:985
#22 kern_getdirentries (td=<optimized out>, fd=<optimized out>, buf=<optimized
out>, count=<optimized out>,
    basep=<optimized out>, residp=<optimized out>, bufseg=<optimized out>)
    at /home/dgilbert/FreeBSD/src/sys/kern/vfs_syscalls.c:4169
#23 0xffffffc000421076 in sys_getdirentries (td=0xffffffc000829fb0 <kdb_why>,
uap=0xffffffc221787ee8)
    at /home/dgilbert/FreeBSD/src/sys/kern/vfs_syscalls.c:4116
#24 0xffffffc0005d5e14 in syscallenter (td=0xffffffc221787b00)
    at /home/dgilbert/FreeBSD/src/sys/riscv/riscv/../../kern/subr_syscall.c:189
#25 ecall_handler () at /home/dgilbert/FreeBSD/src/sys/riscv/riscv/trap.c:165
#26 do_trap_user (frame=<optimized out>) at
/home/dgilbert/FreeBSD/src/sys/riscv/riscv/trap.c:375
#27 <signal handler called>
#28 0x0000000040310e08 in ?? ()

Client:

[1:16:17]root@ump:/var/crash> uname -a
FreeBSD ump.daveg.ca 14.0-CURRENT FreeBSD 14.0-CURRENT #2
unmatched-n247472-2c2ed1f58a18: Wed Jul  7 01:02:27 EDT 2021    
dgilbert@vr.home.dclg.ca:/home/dgilbert/FreeBSD/obj/home/dgilbert/FreeBSD/src/riscv.riscv64/sys/GENERIC
 riscv

Server:

[2:124:424]root@vr:/vr1/tmp> uname -a
FreeBSD vr.home.dclg.ca 13.0-RELEASE FreeBSD 13.0-RELEASE #21
releng/13.0-n244733-ea31abc261f-dirty: Tue Apr 20 12:19:38 EDT 2021    
root@vr.home.dclg.ca:/usr/obj/usr/src/amd64.amd64/sys/GENERIC  amd64

files:
vmcore.3.bz2 https://nextcloud.towernet.ca/s/kzfKrAmqWd7xZYp
core.txt.3.bz2 https://nextcloud.towernet.ca/s/Atemjg9AsJY6MP9
info.3.bz2 https://nextcloud.towernet.ca/s/KjGrqfgRidszNJb
kernel.3.bz2 https://nextcloud.towernet.ca/s/RGdgMM3KRozWQ6t
kernel.3.debug.bz2 https://nextcloud.towernet.ca/s/e6DES6GeCNJeKka

-- 
You are receiving this mail because:
You are the assignee for the bug.