Advertising

I can try later. After several crashes in fairly short order, the
machine currently has 11+ hours of uptime while running poudriere. I
made no kernel changes this time.
The earlier panics seemed to indicate that an entry was on the wrong
list. cache_negative_zap_one() calls cache_negative_shrink_select(),
which updates ncp and neglist, with the latter locked if ncp is not
NULL. Later on, it drops the locks and relocks various things including
neglist before calling cache_zap_locked(), which in turn calls
cache_negative_remove(). The latter calls NCP2NEGLIST(ncp) to recompute
neglist, which it finds is not locked. One of asserts that I added to
cache_negative_zap_one() is a sanity check for the value of neglist
returned by cache_negative_shrink_select(). The neglist value the
latter returns is the index of the neglist array where it found the
entry, not the result of calling NCP2NEGLIST() on the entry. That
assert fired, indicating that there was an inconsistency, but so far I
have not been able to track it further back. I also didn't see any way
for things to get out of whack.
_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"