- Minor
Summary:
Starting a parity check on Unraid OS 7.0.1 causes an immediate kernel panic due to a crash in the raid6_avx21_gen_syndrome function (AVX2-optimized RAID6 parity code). The parity check thread exits, but the UI misleadingly shows a successful check using old cached data. Confirmed on a Ryzen Threadripper 2920X system with 2 disks (1 parity, 1 data).
System Info:
Unraid OS: 7.0.1 (kernel 6.6.78-Unraid)
CPU: AMD Ryzen Threadripper 2920X (AVX2 supported)
Mobo: Gigabyte X399 AORUS PRO-CF
Array: 2 disks (1 parity, 1 storage)
Cache: 2x 1 TB NVME, mirror.
FS: XFS for array, BTRFS cache pool
Steps to Reproduce:
Boot into Unraid 7.0.1.
Go to Main > click "Check Parity".
Note that it appears to complete instantly.
Check syslog.txt — crash occurs in raid6_avx21_gen_syndrome.
Observed Behavior:
Kernel panic occurs when AVX2 RAID6 function is invoked.
Parity thread unraidd0 exits and never completes.
No I/O activity happens.
UI displays a false success, recycling old check results.
Example UI output:
Last checked on Mon 21 Apr 2025 03:06 PM (today)
Duration: 15 hours, 9 minutes, 22 seconds. Average speed: 146.7 MB/s
Finding 0 errors
This result is incorrect — it's recycled from the last valid check from last year (system was offline between checks).
Log Excerpt (syslog.txt):
Tower kernel: md: recovery thread: check Q ...
Tower kernel: general protection fault, maybe for address 0x1
Tower kernel: RIP: raid6_avx21_gen_syndrome+0x80/0x104
Tower kernel: check_parity+0x207/0x354 [md_mod]
Tower kernel: unraidd+0xedf/0x1278 [md_mod]
Work Around:
1. Open the go file on your Unraid USB boot drive
From the Unraid Web UI, click Terminal (top-right), then run:
nano /boot/config/go
This opens the boot script Unraid runs during startup.
2. Add this line above the line that starts emhttp (usually at the end of the file):
modprobe raid6_pq disable_avx2=1
So your go file should look something like:
#!/bin/bash modprobe raid6_pq disable_avx2=1 /usr/local/sbin/emhttp
3. Save and exit nano
Press Ctrl + O to save the file
Press Enter to confirm
Press Ctrl + X to exit
4. Reboot server and run check.
The UI should show the check being in progress,.
Request:
- Fix or bypass raid6_avx21_gen_syndrome.
- Detect parity thread crash and prevent false UI success reports, show failed attempts and record in history.
- Provide UI toggle to disable AVX2 parity calculation for affected CPUs.
Logs available upon request.
Happy to test future versions or provide diagnostics.