NetBSD-Bugs archive

[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>
To: gnats-bugs%netbsd.org@localhost
Cc: 
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
 following boot.
 
 2017-03-09 23:35 GMT+01:00 Jarom=C3=ADr Dole=C4=8Dek <jaromir.dolecek@gmail=
 .com>:
 > The following reply was made to PR kern/52056; it has been noted by GNATS=
 .
 >
 > From: =3D?UTF-8?B?SmFyb23DrXIgRG9sZcSNZWs=3D?=3D <jaromir.dolecek@gmail.c=
 om>
 > To: gnats-bugs%netbsd.org@localhost
 > Cc:
 > 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
 >  flag.
 >
 >  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?
 >
 


Home | Main Index | Thread Index | Old Index