[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/52056: mount -u / causes a kernel assertion
The following reply was made to PR kern/52056; it has been noted by GNATS.
From: =?UTF-8?B?SmFyb23DrXIgRG9sZcSNZWs=?= <jaromir.dolecek%gmail.com@localhost>
Subject: Re: kern/52056: mount -u / causes a kernel assertion
Date: Fri, 10 Mar 2017 00:06:51 +0100
I confirmed setting the async flag for the filesystem makes the system
trigger the assertion. I can reproduce it apparently reliably in
VirtualBox VM. It triggers for me immediatelly after 'Starting file
system checks" as the boot continues.
Steps to reproduce:
0. add flags 'log,async' to /etc/fstab for /
1. boot singleuser
2. mount -u /
3. /rescue/vi /etc/rc.conf # change, save
4. exit # and let the system boot
For some reason, skipping 0) and doing "mount -u -o log,async /" in
step 2), otherwise same steps, did not trigger the panic during
2017-03-09 23:35 GMT+01:00 Jarom=C3=ADr Dole=C4=8Dek <jaromir.dolecek@gmail=
> The following reply was made to PR kern/52056; it has been noted by GNATS=
> From: =3D?UTF-8?B?SmFyb23DrXIgRG9sZcSNZWs=3D?=3D <email@example.com=
> To: gnats-bugs%netbsd.org@localhost
> Subject: Re: kern/52056: mount -u / causes a kernel assertion
> Date: Thu, 9 Mar 2017 23:30:52 +0100
> I've looked on the code, and basically this assertion means that there
> was a bdwrite() done with same buf before MNT_LOG was enabled, and no
> bwrite() happened between that bdwrite() and the bdwrite() triggering
> the assertion.
> wapbl_add_buf() is invoked in bdwrite(), before the BO_DELWRI flag is
> set. It adds the buffer to internal WAPBL list, then sets the B_LOCKED
> The assertion fires only when buf still doesn't have B_LOCKED set, but
> already has BO_DELWRI set. This flow should be impossible.
> I suspect something is still not quite right with the ro/rw switch
> after recent changes. Juergen, any idea? Perhaps having the filesystem
> mounted async might possibly trigger some arcane flow?
Main Index |
Thread Index |