Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Kernel crash trying to use union mount



> On 18. Jan 2019, at 14:13, Tom Ivar Helbekkmo <tih%hamartun.priv.no@localhost> wrote:
> 
> I just had a really weird crash on a NetBSD/amd64-current system,
> running a kernel 8.99.30 from January 2nd.  Here's what happened:
> 
> I was going to experiment with a rather large set of changes to the
> local copy of the source tree, which I'd want to revert afterwards, so I
> created a directory on another file system, and mounted it on top of
> /usr/src with mount_union.  I then copied a 10MiB diff into /usr/src/.
> That went well - the file was visible in /usr/src/, and I observed that
> it was correctly stored in the auxiliary directory, as expected.
> 
> Then I tried reading the file from /usr/src/, and the system immediately
> crashed, and dumped core, with the panic:
> 
> kernel diagnostic assertion "fli->fli_trans_cnt > 0" failed: file "/usr/src/sys/kern/vfs_trans.c", line 451

The VOP_UNLOCK() doesn't match the corresponding vn_lock().

<snip>

> fstrans_done() at fstrans_done+0x126
> VOP_UNLOCK() at VOP_UNLOCK+0x5b
> vput() at vput+0x11
> union_lookup1() at union_lookup1+0xfe

This is

        while (dvp != udvp && (dvp->v_type == VDIR) &&
               (mp = dvp->v_mountedhere)) {
                if (vfs_busy(mp))
                        continue;
                vput(dvp);

which looks wrong.  Please show your mounted file systems.

--
J. Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig

Attachment: signature.asc
Description: Message signed with OpenPGP



Home | Main Index | Thread Index | Old Index