[Pkg-zfsonlinux-devel] Bug#1057018: zfs-dkms: VERIFY3 failed; PANIC at range_tree.c:435; cause all operations to hang until hard reboot

zoyd j3cipgk393oz at explodemail.com
Tue Nov 28 05:19:49 GMT 2023


Package: zfs-dkms
Version: 2.1.11-1
Severity: important
Tags: lfs upstream
X-Debbugs-Cc: j3cipgk393oz at explodemail.com

Dear Maintainer,

When doing incremental replication of encrypted datasets, `zfs send`
crashes and `zfs recv` hangs without responding to any kill signals. Any
subsequent zfs operations hang infinitely until a hard power cycle is
forced (due to reboot similarly hanging).

The following appears in kernel log:

```
VERIFY3(size != 0) failed (0 != 0)
PANIC at range_tree.c:435:range_tree_remove_impl()
Showing stack for process 299994
CPU: 1 PID: 299994 Comm: z_wr_iss Tainted: P           OE     5.9.0-5-amd64 #1 Debian 5.9.15-1
Hardware name: *REDACTED*
Call Trace:
 dump_stack+0x6b/0x83
 spl_panic+0xd4/0xfc [spl]
 ? kfpu_end+0x3f/0x70 [zcommon]
 ? zfs_btree_insert_into_leaf+0x22e/0x330 [zfs]
 ? abd_iterate_func.part.0+0x13b/0x1b0 [zfs]
 ? zfs_btree_add_idx+0xa5/0x230 [zfs]
 ? zfs_btree_find+0x5d/0x320 [zfs]
 ? zfs_btree_find+0x188/0x320 [zfs]
 range_tree_remove_impl+0xa92/0xf00 [zfs]
 ? metaslab_df_alloc+0x1c3/0x5c0 [zfs]
 ? multilist_sublist_insert_tail+0x2b/0x50 [zfs]
 metaslab_alloc_dva+0xbd3/0x14a0 [zfs]
 ? _cond_resched+0x16/0x40
 metaslab_alloc+0xcf/0x280 [zfs]
 zio_dva_allocate+0xd4/0x8d0 [zfs]
 ? irq_exit_rcu+0x3e/0xc0
 ? common_interrupt+0x77/0x130
 ? asm_common_interrupt+0x1e/0x40
 zio_execute+0x81/0x120 [zfs]
 taskq_thread+0x2df/0x520 [spl]
 ? wake_up_q+0xa0/0xa0
 ? zio_gang_tree_free+0x60/0x60 [zfs]
 ? taskq_thread_spawn+0x50/0x50 [spl]
 kthread+0x11b/0x140
 ? __kthread_bind_mask+0x60/0x60
 ret_from_fork+0x22/0x30
INFO: task z_wr_iss:765697 blocked for more than 120 seconds.
      Tainted: P           OE     5.9.0-5-amd64 #1 Debian 5.9.15-1
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:z_wr_iss        state:D stack:    0 pid:765697 ppid:     2 flags:0x00004000
Call Trace:
 __schedule+0x281/0x8a0
 schedule+0x4a/0xb0
 schedule_preempt_disabled+0xa/0x10
 __mutex_lock.constprop.0+0x13a/0x480
 metaslab_alloc_dva+0x413/0x14a0 [zfs]
 ? _cond_resched+0x16/0x40
 metaslab_alloc+0xcf/0x280 [zfs]
 zio_dva_allocate+0xd4/0x8d0 [zfs]
 ? zio_vdev_io_done+0x49/0x220 [zfs]
 zio_execute+0x81/0x120 [zfs]
 taskq_thread+0x2df/0x520 [spl]
 ? wake_up_q+0xa0/0xa0
 ? zio_gang_tree_free+0x60/0x60 [zfs]
 ? taskq_thread_spawn+0x50/0x50 [spl]
 kthread+0x11b/0x140
 ? __kthread_bind_mask+0x60/0x60
 ret_from_fork+0x22/0x30
INFO: task txg_sync:765752 blocked for more than 120 seconds.
      Tainted: P           OE     5.9.0-5-amd64 #1 Debian 5.9.15-1
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
```


There is an upstream patch available: 

The fix should be present already in bookworm-backports but is sever
enough that I believe it should be brought into stable.

Upstream issue: https://github.com/openzfs/zfs/issues/11893
Upstream patch targeting 2.1.12: https://github.com/openzfs/zfs/pull/14843

-- System Information:
Debian Release: 12.2
  APT prefers stable-security
  APT policy: (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 5.9.0-5-amd64 (SMP w/12 CPU threads)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages zfs-dkms depends on:
ii  debconf [debconf-2.0]  1.5.82
ii  dkms                   3.0.10-8+deb12u1
ii  file                   1:5.44-3
ii  libc6-dev [libc-dev]   2.36-9+deb12u3
ii  libpython3-stdlib      3.11.2-1+b1
ii  lsb-release            12.0-1
ii  perl                   5.36.0-7
ii  python3-distutils      3.11.2-3

Versions of packages zfs-dkms recommends:
ii  linux-libc-dev  6.1.55-1
ii  zfs-zed         2.1.11-1
ii  zfsutils-linux  2.1.11-1

Versions of packages zfs-dkms suggests:
pn  debhelper  <none>

-- debconf information:
* zfs-dkms/note-incompatible-licenses:
  zfs-dkms/stop-build-for-unknown-kernel: true
  zfs-dkms/stop-build-for-32bit-kernel: true



More information about the Pkg-zfsonlinux-devel mailing list