È disponibile una release intermedia del progetto OpenZFS 2.2.1, che sviluppa l’implementazione del file system ZFS per Linux e FreeBSD. Questa versione è notevole per l'aggiunta del supporto per il kernel Linux 6.6 e per il tentativo di risolvere un problema che porta alla corruzione dei dati (azzeramento di parte dei blocchi) nei file dopo la loro copia.
Inizialmente si pensava che il problema si manifestasse solo nel ramo 2.2.x ed fosse causato da un errore nel meccanismo di clonazione dei blocchi incluso in OpenZFS 2.2.0, che consente di creare una copia di un file o di una sua parte senza duplicare i dati, utilizzando nella seconda copia riferimenti ai blocchi dati esistenti del file originale senza copiarli effettivamente. Nella versione OpenZFS 2.2.1, per bloccare il problema, il meccanismo di clonazione dei blocchi è stato disabilitato per impostazione predefinita, e per riattivare il supporto a questa modalità è stata aggiunta l'impostazione zfs_bclone_enabled.
Successivamente, gli sviluppatori hanno riportato la riproduzione del problema anche nelle configurazioni con il ramo OpenZFS 2.1.x. Non si sono confermate neppure le ipotesi che il problema si manifesti su sistemi con versioni obsolete del pacchetto coreutils: l'errore è stato riprodotto su FreeBSD e in distribuzioni Linux con la recente versione di coreutils 9.4.
La corruzione dei file si verifica in circostanze piuttosto rare, ad esempio, l'esecuzione del comando «emerge -1 dev-lang/go» in Gentoo porta all'installazione degli strumenti per il linguaggio Go con la corruzione dei file nella cartella /usr/lib/go/pkg/tool/linux_amd64/compile. Si suppone che l'errore abbia iniziato a manifestarsi dopo che il parametro «zfs_dmu_offset_next_sync=1» è stato impostato come predefinito nella versione openzfs 2.1.4. La fonte dell'errore non è ancora stata identificata. Come soluzione alternativa raccomandata per bloccare l'errore, si propone di impostare a 0 il parametro «/sys/module/zfs/parameters/zfs_dmu_offset_next_sync».
Fonte: opennet.ru
