> On 18. Jan 2019, at 14:13, Tom Ivar Helbekkmo <[email protected]> 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 - [email protected] - TU Braunschweig
signature.asc
Description: Message signed with OpenPGP
