Pagine

2025-07-31

Attenzione a fstrim su RAID 10: crash del kernel in alcune configurazioni Linux (5.15.181-stable / 5.15.188-stable)


Sintomo

Su alcune configurazioni Linux, eseguire il comando:

> fstrim -v /

può causare un crash del kernel immediato, accompagnato dal messaggio `Killed` e da una traccia nel log (`dmesg`) simile a questa:

RIP: 0010:0x0
Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6.
Call Trace:
  raid10_make_request+0xbf1/0xd20
  ...

Il problema si verifica anche su altri mount point e non è legato a mancanza di memoria o corruzione del filesystem.

Causa

Il problema è causato da un bug noto nel driver md/raid10 del kernel Linux: quando viene eseguito un comando TRIM (come `fstrim`) su un volume configurato in RAID 10 software, il kernel tenta di accedere ad un puntatore funzione nullo, provocando un kernel panic.

Questa anomalia è stata segnalata anche in altre distribuzioni (es. Ubuntu, bug #2117395) e si verifica su filesystem ext4 montati sopra array RAID 10.

Perché succede

Il supporto TRIM (discard) non è sempre correttamente implementato nel livello RAID 10 software. Il kernel presume l'esistenza di una funzione per gestire l'operazione `REQ_OP_DISCARD`, ma questa non è definita in alcune configurazioni. Il risultato è un accesso a indirizzo nullo (0x0) e il crash del sistema.

Soluzioni consigliate

Non usare, momentaneamente, `fstrim` su RAID 10.

Rimuovere l'opzione `discard` da `/etc/fstab` per evitare TRIM automatici:

diff
- /dev/md0 / ext4 defaults,discard 0 1
+ /dev/md0 / ext4 defaults 0 1