> 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