"panic: len 0" on NFS read

Rick Macklem rmacklem at uoguelph.ca
Fri Dec 26 02:04:57 UTC 2014


Peter Jeremy wrote:
> On 2014-Dec-25 20:08:20 -0500, Rick Macklem <rmacklem at uoguelph.ca>
> wrote:
> >Peter Jeremy wrote:
> >> Whilst trying to debug a RPC issue with a NFS tunneling tool, I
> >> mounted a
> >> NFS filesystem onto the same host and got a panic when I tried to
> >> access it.
> >> 
> >> I'm running FreeBSD/amd64 10-stable r276177.
> >> 
> >> I mounted the filesystem with:
> >> # mount -o udp,nfsv3 $(hostname):/tank/src92 /dist
> >> 
> >> (/tank/src92 and / are ZFS)
> >> 
> >> And then ran:
> >> $ grep zzzz /dist/*
> >> 
> >> And got:
> >> panic: len 0
> >r275941 in head changed this KASSERT to allow a 0 length mbuf, so I
> >don't think the panic is meaningful.
> >Maybe r275941 should be MFC'd? (I've cc'd benno, who did the
> >commit.)
> 
> Thanks.  I've tried MFCing r275941 and can't reproduce the panic by
> following the above (though without knowing the exact reason for
> having a
> 0-byte mbuf in the chain originally, I can't be sure that I'm getting
> a
> 0-byte mbuf in the chain now).
> 
Well, NFSM_DISSECT() behaves a little like m_pullup(), in that it can
copy data from one mbuf to another to create a large enough contiguous
data area. It is conceivable that the mbuf being copied from could
be reduced to m_len == 0. The code wouldn't remove this mbuf from the
chain.

rick

> --
> Peter Jeremy
> 


More information about the freebsd-fs mailing list