System information
| Type |
Version/Name |
| Distribution Name |
Rocky Linux release 8.10 (Green Obsidian) |
| Distribution Version |
Rocky Linux release 8.10 (Green Obsidian) |
| Kernel Version |
4.18.0-553.137.1.el8_10.x86_64 |
| Architecture |
x86_64 |
| OpenZFS Version |
zfs-2.2.10-1 |
Describe the problem you're observing
After replacing one disk of a Linux mdadm RAID1 array and completing a successful resync, my ZFS pool intermittently hangs during boot.
Storage layout:
2 SATA disks
-> mdadm RAID1 (/dev/md1)
-> LVM PV
-> LV vg0/zfs
-> ZFS pool (myzpool)
The pool imports successfully during boot:
Started Import ZFS pools by cache file.
Reached target ZFS pool import target.
but the boot hangs indefinitely at:
Starting Mount ZFS filesystems…
A start job is running for Mount ZFS filesystems
The machine becomes completely inaccessible (no SSH).
After approximately 120 seconds, the kernel reports a blocked task:
task: txg_sync state:D
with the following stack trace:
zio_wait()
spa_sync_frees()
spa_sync_iterate_to_convergence()
spa_sync()
txg_sync_thread()
Several hours later (or after another reboot), ZFS reports:
WARNING: Pool ‘myzpool’ has encountered an uncorrectable I/O failure and has been suspended.
The pool cannot be recovered with:
zpool clear myzpool
which returns:
cannot clear errors for myzpool: I/O error
However, after another reboot (sometimes taking several hours), the pool comes back completely healthy:
pool: myzpool
state: ONLINE
errors: No known data errors
and all datasets mount normally.
The issue is therefore intermittent.
The boot process is blocked waiting for zfs-mount.service, preventing SSH access.
From KVM screenshots :
Describe how to reproduce the problem
Unfortunately I do not have a reliable reproducer.
The issue first appeared one week after replacing one member of an mdadm RAID1 array and letting the array fully resynchronize.
The RAID is healthy:
Disks:
/dev/sda serial=xxxxxxxxxx model=ST10000NM0156-2AA111 health=PASSED power_on_hours=50555 temp=54C reallocated=1013 pending=0 trend=stable
/dev/sdb serial= xxxxxxxxxx model=HGST HUH721008ALE600 health=PASSED power_on_hours=45698 temp=56C reallocated=0 pending=0 trend=stable
RAID:
/dev/md0 state=clean, resyncing (DELAYED) active=2 working=2 failed=0 raid_devices=2
/dev/md1 state=active, checking active=2 working=2 failed=0 raid_devices=2
#cat /proc/mdstat
mdadm --detail /dev/md1
mdadm --detail /dev/md0
Personalities : [raid1]
md1 : active raid1 sdb2[1] sda2[2]
7811795264 blocks super 1.2 [2/2] [UU]
bitmap: 4/59 pages [16KB], 65536KB chunk
md0 : active raid1 sdb1[1] sda1[2]
2094080 blocks super 1.2 [2/2] [UU]
unused devices: <none>
/dev/md1:
Version : 1.2
Creation Time : Fri Apr 1 08:45:54 2022
Raid Level : raid1
Array Size : 7811795264 (7.28 TiB 8.00 TB)
Used Dev Size : 7811795264 (7.28 TiB 8.00 TB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Wed Jul 1 08:31:57 2026
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : bitmap
Name : rescue:1
UUID : c0880b3b:0376a676:cca248aa:c7f19f26
Events : 3682997
Number Major Minor RaidDevice State
2 8 2 0 active sync /dev/sda2
1 8 18 1 active sync /dev/sdb2
/dev/md0:
Version : 1.2
Creation Time : Fri Apr 1 08:45:54 2022
Raid Level : raid1
Array Size : 2094080 (2045.00 MiB 2144.34 MB)
Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed Jul 1 07:05:14 2026
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : rescue:0
UUID : a1a4f0bd:a74cbcf2:daac2d1b:dea67028
Events : 787
Number Major Minor RaidDevice State
2 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
The issue has now occurred during multiple consecutive boots.
Sometimes the system boots normally.
Sometimes boot blocks indefinitely while mounting ZFS filesystems.
After another reboot the pool is again healthy.
Include any warning/errors/backtraces from the system logs
During some test ZFS crashes when I still had a SSH on the server, so I could run some commands:
#journalctl -k --since "2026-06-26 16:30" | egrep -i 'md1|md0|raid|sda|sdb|I/O|error|mismatch|resync|recovery|zfs'
Jun 26 16:30:17 localhost kernel: APIC: Switch to symmetric I/O mode setup
Jun 26 16:30:18 localhost kernel: sd 0:0:0:0: [sda] 19532873728 512-byte logical blocks: (10.0 TB/9.10 TiB)
Jun 26 16:30:18 localhost kernel: sd 1:0:0:0: [sdb] 15628053168 512-byte logical blocks: (8.00 TB/7.28 TiB)
Jun 26 16:30:18 localhost kernel: sd 0:0:0:0: [sda] 4096-byte physical blocks
Jun 26 16:30:18 localhost kernel: sd 1:0:0:0: [sdb] 4096-byte physical blocks
Jun 26 16:30:18 localhost kernel: sd 0:0:0:0: [sda] Write Protect is off
Jun 26 16:30:18 localhost kernel: sd 1:0:0:0: [sdb] Write Protect is off
Jun 26 16:30:18 localhost kernel: sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
Jun 26 16:30:18 localhost kernel: sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
Jun 26 16:30:18 localhost kernel: sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Jun 26 16:30:18 localhost kernel: sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Jun 26 16:30:18 localhost kernel: sdb: sdb1 sdb2 sdb3
Jun 26 16:30:18 localhost kernel: sd 1:0:0:0: [sdb] Attached SCSI disk
Jun 26 16:30:18 localhost kernel: sda: sda1 sda2 sda3
Jun 26 16:30:18 localhost kernel: sd 0:0:0:0: [sda] Attached SCSI disk
Jun 26 16:30:18 localhost kernel: md/raid1:md0: active with 2 out of 2 mirrors
Jun 26 16:30:18 localhost kernel: md0: detected capacity change from 0 to 2144337920
Jun 26 16:30:18 localhost kernel: md/raid1:md1: active with 2 out of 2 mirrors
Jun 26 16:30:18 localhost kernel: md1: detected capacity change from 0 to 7999278350336
Jun 26 16:30:25 myserver.example.net kernel: zfs: module license 'CDDL' taints kernel.
Jun 26 16:30:25 myserver.example.net kernel: zfs: unknown parameter 'zfs_arc_meta_strategy' ignored
Jun 26 16:30:25 myserver.example.net kernel: EXT4-fs (md0): mounting ext3 file system using the ext4 subsystem
Jun 26 16:30:25 myserver.example.net kernel: ZFS: Loaded module v2.2.10-1, ZFS pool version 5000, ZFS filesystem version 5
Jun 26 16:30:25 myserver.example.net kernel: EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: (null)
Jun 26 18:29:01 myserver.example.net kernel: zio_wait+0x114/0x230 [zfs]
Jun 26 18:29:01 myserver.example.net kernel: dsl_pool_sync_mos+0x37/0xa0 [zfs]
Jun 26 18:29:01 myserver.example.net kernel: dsl_pool_sync+0x3d2/0x430 [zfs]
Jun 26 18:29:01 myserver.example.net kernel: spa_sync_iterate_to_convergence+0xcf/0x1f0 [zfs]
Jun 26 18:29:01 myserver.example.net kernel: spa_sync+0x318/0x610 [zfs]
Jun 26 18:29:01 myserver.example.net kernel: txg_sync_thread+0x1f2/0x260 [zfs]
Jun 26 18:29:01 myserver.example.net kernel: ? txg_dispatch_callbacks+0xf0/0xf0 [zfs]
Jun 26 18:35:10 myserver.example.net kernel: zio_wait+0x114/0x230 [zfs]
Jun 26 18:35:10 myserver.example.net kernel: dsl_pool_sync_mos+0x37/0xa0 [zfs]
Jun 26 18:35:10 myserver.example.net kernel: dsl_pool_sync+0x3d2/0x430 [zfs]
Jun 26 18:35:10 myserver.example.net kernel: spa_sync_iterate_to_convergence+0xcf/0x1f0 [zfs]
Jun 26 18:35:10 myserver.example.net kernel: spa_sync+0x318/0x610 [zfs]
Jun 26 18:35:10 myserver.example.net kernel: txg_sync_thread+0x1f2/0x260 [zfs]
Jun 26 18:35:10 myserver.example.net kernel: ? txg_dispatch_callbacks+0xf0/0xf0 [zfs]
Jun 26 18:47:27 myserver.example.net kernel: zio_wait+0x114/0x230 [zfs]
Jun 26 18:47:27 myserver.example.net kernel: dsl_pool_sync_mos+0x37/0xa0 [zfs]
Jun 26 18:47:27 myserver.example.net kernel: dsl_pool_sync+0x3d2/0x430 [zfs]
Jun 26 18:47:27 myserver.example.net kernel: spa_sync_iterate_to_convergence+0xcf/0x1f0 [zfs]
Jun 26 18:47:27 myserver.example.net kernel: spa_sync+0x318/0x610 [zfs]
Jun 26 18:47:27 myserver.example.net kernel: txg_sync_thread+0x1f2/0x260 [zfs]
Jun 26 18:47:27 myserver.example.net kernel: ? txg_dispatch_callbacks+0xf0/0xf0 [zfs]
Jun 26 18:55:39 myserver.example.net kernel: zio_wait+0x114/0x230 [zfs]
Jun 26 18:55:39 myserver.example.net kernel: dsl_pool_sync_mos+0x37/0xa0 [zfs]
Jun 26 18:55:39 myserver.example.net kernel: dsl_pool_sync+0x3d2/0x430 [zfs]
Jun 26 18:55:39 myserver.example.net kernel: spa_sync_iterate_to_convergence+0xcf/0x1f0 [zfs]
Jun 26 18:55:39 myserver.example.net kernel: spa_sync+0x318/0x610 [zfs]
Jun 26 18:55:39 myserver.example.net kernel: txg_sync_thread+0x1f2/0x260 [zfs]
Jun 26 18:55:39 myserver.example.net kernel: ? txg_dispatch_callbacks+0xf0/0xf0 [zfs]
Jun 26 18:59:45 myserver.example.net kernel: zio_wait+0x114/0x230 [zfs]
Jun 26 18:59:45 myserver.example.net kernel: dsl_pool_sync+0xb7/0x430 [zfs]
Jun 26 18:59:45 myserver.example.net kernel: ? __raw_spin_unlock+0x5/0x10 [zfs]
Jun 26 18:59:45 myserver.example.net kernel: ? spa_errlog_sync+0x268/0x290 [zfs]
Jun 26 18:59:45 myserver.example.net kernel: spa_sync_iterate_to_convergence+0xcf/0x1f0 [zfs]
Jun 26 18:59:45 myserver.example.net kernel: spa_sync+0x318/0x610 [zfs]
Jun 26 18:59:45 myserver.example.net kernel: txg_sync_thread+0x1f2/0x260 [zfs]
Jun 26 18:59:45 myserver.example.net kernel: ? txg_dispatch_callbacks+0xf0/0xf0 [zfs]
Jun 26 19:07:56 myserver.example.net kernel: zio_wait+0x114/0x230 [zfs]
Jun 26 19:07:56 myserver.example.net kernel: dsl_pool_sync_mos+0x37/0xa0 [zfs]
Jun 26 19:07:56 myserver.example.net kernel: dsl_pool_sync+0x3d2/0x430 [zfs]
Jun 26 19:07:56 myserver.example.net kernel: spa_sync_iterate_to_convergence+0xcf/0x1f0 [zfs]
Jun 26 19:07:56 myserver.example.net kernel: spa_sync+0x318/0x610 [zfs]
Jun 26 19:07:56 myserver.example.net kernel: txg_sync_thread+0x1f2/0x260 [zfs]
Jun 26 19:07:56 myserver.example.net kernel: ? txg_dispatch_callbacks+0xf0/0xf0 [zfs]
Jun 26 19:12:02 myserver.example.net kernel: zio_wait+0x114/0x230 [zfs]
Jun 26 19:12:02 myserver.example.net kernel: dsl_pool_sync_mos+0x37/0xa0 [zfs]
Jun 26 19:12:02 myserver.example.net kernel: dsl_pool_sync+0x3d2/0x430 [zfs]
Jun 26 19:12:02 myserver.example.net kernel: spa_sync_iterate_to_convergence+0xcf/0x1f0 [zfs]
Jun 26 19:12:02 myserver.example.net kernel: spa_sync+0x318/0x610 [zfs]
Jun 26 19:12:02 myserver.example.net kernel: txg_sync_thread+0x1f2/0x260 [zfs]
Jun 26 19:12:02 myserver.example.net kernel: ? txg_dispatch_callbacks+0xf0/0xf0 [zfs]
Jun 26 19:14:05 myserver.example.net kernel: zio_wait+0x114/0x230 [zfs]
Jun 26 19:14:05 myserver.example.net kernel: dsl_pool_sync_mos+0x37/0xa0 [zfs]
Jun 26 19:14:05 myserver.example.net kernel: dsl_pool_sync+0x3d2/0x430 [zfs]
Jun 26 19:14:05 myserver.example.net kernel: spa_sync_iterate_to_convergence+0xcf/0x1f0 [zfs]
Jun 26 19:14:05 myserver.example.net kernel: spa_sync+0x318/0x610 [zfs]
Jun 26 19:14:05 myserver.example.net kernel: txg_sync_thread+0x1f2/0x260 [zfs]
Jun 26 19:14:05 myserver.example.net kernel: ? txg_dispatch_callbacks+0xf0/0xf0 [zfs]
Jun 26 19:32:31 myserver.example.net kernel: zio_wait+0x114/0x230 [zfs]
Jun 26 19:32:31 myserver.example.net kernel: dsl_pool_sync_mos+0x37/0xa0 [zfs]
Jun 26 19:32:31 myserver.example.net kernel: dsl_pool_sync+0x3d2/0x430 [zfs]
Jun 26 19:32:31 myserver.example.net kernel: spa_sync_iterate_to_convergence+0xcf/0x1f0 [zfs]
Jun 26 19:32:31 myserver.example.net kernel: spa_sync+0x318/0x610 [zfs]
Jun 26 19:32:31 myserver.example.net kernel: txg_sync_thread+0x1f2/0x260 [zfs]
Jun 26 19:32:31 myserver.example.net kernel: ? txg_dispatch_callbacks+0xf0/0xf0 [zfs]
Jun 26 19:44:48 myserver.example.net kernel: zio_wait+0x114/0x230 [zfs]
Jun 26 19:44:48 myserver.example.net kernel: dsl_pool_sync_mos+0x37/0xa0 [zfs]
Jun 26 19:44:48 myserver.example.net kernel: dsl_pool_sync+0x3d2/0x430 [zfs]
Jun 26 19:44:48 myserver.example.net kernel: spa_sync_iterate_to_convergence+0xcf/0x1f0 [zfs]
Jun 26 19:44:48 myserver.example.net kernel: spa_sync+0x318/0x610 [zfs]
Jun 26 19:44:48 myserver.example.net kernel: txg_sync_thread+0x1f2/0x260 [zfs]
Jun 26 19:44:48 myserver.example.net kernel: ? txg_dispatch_callbacks+0xf0/0xf0 [zfs]
Jun 28 01:00:01 myserver.example.net kernel: md: data-check of RAID array md1
Jun 28 01:00:07 myserver.example.net kernel: md: delaying data-check of md0 until md1 has finished (they share one or more physical units)
Jun 29 17:13:42 myserver.example.net kernel: WARNING: Pool 'myzpool' has encountered an uncorrectable I/O failure and has been suspended.
Jun 30 02:39:12 myserver.example.net kernel: md: md1: data-check done.
Jun 30 02:39:12 myserver.example.net kernel: md: data-check of RAID array md0
Jun 30 02:39:25 myserver.example.net kernel: md: md0: data-check done.
Sometimes zpool status showed the error, that sometimes disappears just after a reboot :
#zpool get failmode myzpool
NAME PROPERTY VALUE SOURCE
myzpool failmode wait default
#zpool status -v myzpool
pool: myzpool
state: SUSPENDED
status: One or more devices are faulted in response to IO failures.
action: Make sure the affected devices are connected, then run 'zpool clear'.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-HC
scan: scrub repaired 0B in 02:50:43 with 0 errors on Tue Jan 6 19:58:59 2026
config:
NAME STATE READ WRITE CKSUM
myzpool ONLINE 0 0 0
vg0/zfs ONLINE 0 0 0
errors: List of errors unavailable: pool I/O is currently suspended
#zpool clear myzpool
cannot clear errors for myzpool: I/O error
After a long reboot :
#zpool status -v myzpool
pool: myzpool
state: ONLINE
scan: scrub repaired 0B in 02:50:43 with 0 errors on Tue Jan 6 19:58:59 2026
config:
NAME STATE READ WRITE CKSUM
myzpool ONLINE 0 0 0
vg0/zfs ONLINE 0 0 0
errors: No known data errors
#zfs list
NAME USED AVAIL REFER MOUNTPOINT
myzpool 10.9T 8.84T 157G /myzpool
myzpool/BACKUP 9.45T 8.84T 9.45T /myzpool/BACKUP
myzpool/storage 1.33T 8.84T 1.33T /myzpool/storage
[root@hzr-2204][5526][~] #zfs mount
myzpool /myzpool
myzpool/BACKUP /myzpool/BACKUP
myzpool/storage /myzpool/storage
#zpool get health,failmode,dedupditto myzpool
NAME PROPERTY VALUE SOURCE
myzpool health ONLINE -
myzpool failmode wait default
myzpool dedupditto 0 default
Note on sda that below metrics are not changing since this disk has been setup :
- Reallocated_Sector_Ct = 1013
- Reported_Uncorrect = 1
System information
Describe the problem you're observing
After replacing one disk of a Linux mdadm RAID1 array and completing a successful resync, my ZFS pool intermittently hangs during boot.
Storage layout:
2 SATA disks
-> mdadm RAID1 (/dev/md1)
-> LVM PV
-> LV vg0/zfs
-> ZFS pool (myzpool)
The pool imports successfully during boot:
Started Import ZFS pools by cache file.
Reached target ZFS pool import target.
but the boot hangs indefinitely at:
Starting Mount ZFS filesystems…
A start job is running for Mount ZFS filesystems
The machine becomes completely inaccessible (no SSH).
After approximately 120 seconds, the kernel reports a blocked task:
task: txg_sync state:D
with the following stack trace:
zio_wait()
spa_sync_frees()
spa_sync_iterate_to_convergence()
spa_sync()
txg_sync_thread()
Several hours later (or after another reboot), ZFS reports:
WARNING: Pool ‘myzpool’ has encountered an uncorrectable I/O failure and has been suspended.
The pool cannot be recovered with:
zpool clear myzpool
which returns:
cannot clear errors for myzpool: I/O error
However, after another reboot (sometimes taking several hours), the pool comes back completely healthy:
pool: myzpool
state: ONLINE
errors: No known data errors
and all datasets mount normally.
The issue is therefore intermittent.
The boot process is blocked waiting for
zfs-mount.service, preventing SSH access.From KVM screenshots :
Describe how to reproduce the problem
Unfortunately I do not have a reliable reproducer.
The issue first appeared one week after replacing one member of an mdadm RAID1 array and letting the array fully resynchronize.
The RAID is healthy:
The issue has now occurred during multiple consecutive boots.
Sometimes the system boots normally.
Sometimes boot blocks indefinitely while mounting ZFS filesystems.
After another reboot the pool is again healthy.
Include any warning/errors/backtraces from the system logs
During some test ZFS crashes when I still had a SSH on the server, so I could run some commands:
Sometimes
zpool statusshowed the error, that sometimes disappears just after a reboot :After a long reboot :
Note on sda that below metrics are not changing since this disk has been setup :