Subject: Panic in subr_pool:817
To: None <tech-kern@netbsd.org>
From: Reinoud Zandijk <reinoud@netbsd.org>
List: tech-kern
Date: 01/10/2006 00:53:12
--IJpNTDwzlM2Ie8A6
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Dear folks,

just now when stress testing UDF i got a panic in subr_pool:817 (pool_get). 
Inspecting this line its a SCHED_ASSERT_UNLOCKED(). I dont have a trace 
since the machine got wacky but in my recollection it was in vnode or buf 
shortage and asked for a clean vnode. This vnode was then recycled from FFS 
and then it got wrong.

Anyone else seen this happen before? Could this signal a bug in the pool 
code? or in the free lists? I suspect the free lists too since I've seen 
UDF do strange things when in resource tight situations. It all goes well 
for a long time but then it gets ugly. For unknown reasons buf's containing 
directory information are then constantly recycled and buffers just touched 
a transaction before seem to be lost again and directories have to be 
reread and reread and reread over and over again.

My hypothesis is that buffers are somehow not on the freelist nor on the 
age lists anymore (i.e. lost) and the few buffers that eventually are on 
the age list gets recycled as soon as they are pushed.

I've dug into my UDF code for that is offcource the most obvious place to 
look first but all my buffers are returned with B_AGE set to brelse().

Note that this was a DIAGNOSTIC+DEBUG+LOCKDEBUG+POOL_DIAGNOSTIC kernel.

Regards,
Reinoud


--IJpNTDwzlM2Ie8A6
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (NetBSD)

iQEVAwUBQ8L3YYKcNwBDyKpoAQLiTwf/fRT6ig2VG8bUx44ly3NbGYDPjcToEcz0
KPdt8ehVOTUHP7ODvq/eubM1d5Mb+VMUtzAl/Wedtlqru59bk7n9UBlp7L4MlFQH
zB8/k23RMQjio7P0CFKOngrKTI8VwlpZwFx3FVgu0veruxE+eR9rWqLwYRvNmvlW
WwCihv3EyV4Vbn2OIezs6nF6K1Fm1ql/yFAIb6fjucCCa6IMGNlGuXyVgats/rp7
TfVZ1Eyf0dKk/Fwx1fBcPj+95oIbKX+zO9M0vvsOZMiGfrcofBAP5SXB0qH1x/1q
tS0v0ISNSodUMMROu13FPRpsHXg/0n9d4W83dSAeWXGX9gjYsArYOw==
=hTEa
-----END PGP SIGNATURE-----

--IJpNTDwzlM2Ie8A6--