È disponibile una versione 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 provoca danni ai dati (azzerramento di alcuni blocchi) nei file dopo la loro copia.
Inizialmente si pensava che il problema si manifestasse solo nella branch 2.2.x e 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 di 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 di questa modalità è stata aggiunta l'impostazione zfs_bclone_enabled.
Successivamente, gli sviluppatori hanno segnalato la riproduzione del problema anche in configurazioni con la branch OpenZFS 2.1.x. Non sono state confermate le ipotesi secondo cui il problema si manifesti su sistemi con le versioni più vecchie del pacchetto coreutils: l'errore è stato riprodotto su FreeBSD e in distribuzioni Linux con la versione recente di coreutils 9.4.
Il danneggiamento dei file si manifesta 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 danneggiamento dei file nella directory /usr/lib/go/pkg/tool/linux_amd64/compile. Si ipotizza che l'errore abbia iniziato a presentarsi dopo che il parametro «zfs_dmu_offset_next_sync=1» è stato impostato su valore predefinito nella versione openzfs 2.1.4. La fonte dell'errore non è stata ancora identificata. Come soluzione consigliata per bloccare l'errore, è stato suggerito di impostare a 0 il parametro «/sys/module/zfs/parameters/zfs_dmu_offset_next_sync».
Fonte: opennet.ru
