[Bug 276341] zfs panic: VERIFY3(rc->rc_count == number) failed

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 20 Jan 2024 19:17:18 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=276341

--- Comment #8 from John F. Carr <jfc@mit.edu> ---
Here is the object being destroyed on my system:

(kgdb) p ARC_anon.arcs_size[0]
$3 = {rc_count = 262144, rc_mtx = {lock_object = {lo_name = 0xffff000000c8d8f6
"rc->rc_mtx", 
      lo_flags = 577830912, lo_data = 0, lo_witness = 0x0}, sx_lock = 1},
rc_tree = {avl_root = 0x0, 
    avl_compar = 0xffff0000001630f0 <zfs_refcount_compare>, avl_offset = 0,
avl_numnodes = 0}, 
  rc_removed = {list_size = 48, list_offset = 0, list_head = {
      list_next = 0xffff0000010e6ad8 <ARC_anon+216>, list_prev =
0xffff0000010e6ad8 <ARC_anon+216>}}, 
  rc_removed_count = 0, rc_tracked = 0}

The sx_lock field is the correct value for a mutex to be passed to sx_destroy.

The avl tree is supposed to be empty because rc_tracked=0.
The value comes from the global variable reference_tracking_enable.
Setting that to 1 at compile time might shed some light on the problem.

ARC_anon+216 is the address of rc_removed.list_head.

lo_flags = 577830912 = 0x22710000 = class 0x22,
LO_INITIALIZED|LO_WITNESS|LO_QUIET.

So there's nothing obviously wrong here except the accumulated
count added to and subtracted from the counter is not zero.

This is an ARC counter.  I do not expect scrubbing to have any effect.
I ran zpool scrub and it found no errors.

-- 
You are receiving this mail because:
You are the assignee for the bug.