[DragonFlyBSD - Bug #3266] Filesystems broken due to "KKASSERT(count & TOK_COUNTMASK);"

bugtracker-admin at leaf.dragonflybsd.org bugtracker-admin at leaf.dragonflybsd.org
Mon Mar 15 13:21:30 PDT 2021

Issue #3266 has been updated by dillon.

If you can find a way to easily reproduce the panic I can go looking too.  I have not hit this panic at all yet.  It really should have caught whatever the issue was with some of the earlier assertions in those code paths.  Every token is 100% tracked in a per-thread array so its a bit worrying that a bug could make it that deep into the token release code.

There have been some notable changes in some of those paths.  The rename code paths being the most notable (ad1212685b9caac64c086a), some changes to the exec code, and some optimizations in the GETATTR path.


Bug #3266: Filesystems broken due to "KKASSERT(count & TOK_COUNTMASK);"

* Author: tkusumi
* Status: New
* Priority: High
* Assignee: 
* Category: 
* Target version: 
Many fs including HAMMER2 are broken due to this assert failure.
Confirmed the panic with HAMMER2 and ext2.
It didn't happen a few months ago.

433 static __inline
434 void
435 _lwkt_reltokref(lwkt_tokref_t ref, thread_t td)
436 {
454                 /*
455                  * We are a shared holder
456                  */
457                 count = atomic_fetchadd_long(&tok->t_count, -TOK_INCR);
458                 KKASSERT(count & TOK_COUNTMASK);        /* count prior */    <-----------
459         }
460 }

You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account

More information about the Bugs mailing list