[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 10:37:30 PDT 2021


Issue #3266 has been updated by dillon.


Negative, that assertion cannot be removed.  It asserts that there is a token to release.  If there isn't one that means there is a get/rel mismatch somewhere that needs to be tracked down and located.

-Matt

----------------------------------------
Bug #3266: Filesystems broken due to "KKASSERT(count & TOK_COUNTMASK);"
http://bugs.dragonflybsd.org/issues/3266#change-13964

* 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