Projekt OpenZFS 2.2.1, ktorý vyvíja implementáciu súborového systému ZFS pre Linux a FreeBSD. Toto vydanie je pozoruhodné pridaním podpory jadra. Linux 6.6 a pokus o odstránenie problému, ktorý vedie k poškodeniu údajov (vynulovanie niektorých blokov) v súboroch po ich kopírovaní.
Pôvodne sa predpokladalo, že problém sa vyskytuje iba vo vetve 2.2.x a je spôsobený chybou v mechanizme klonovania blokov obsiahnutom v OpenZFS 2.2.0, ktorý umožňuje vytvoriť kópiu súboru alebo jeho časti bez duplikovania dáta, pričom v druhej kópii použijeme odkazy na už existujúce dátové bloky zdrojového súboru bez ich skutočného skopírovania. V OpenZFS 2.2.1, aby sa problém zablokoval, mechanizmus klonovania blokov bol predvolene vypnutý a bolo pridané nastavenie zfs_bclone_enabled, aby sa vrátila podpora pre tento režim.
Neskôr vývojári oznámili reprodukciu problému v konfiguráciách s vetvou OpenZFS 2.1.x. Predpoklad, že sa problém prejavuje na systémoch so staršími verziami balíka coreutils, sa tiež nepotvrdil – chyba bola úspešne reprodukovaná vo FreeBSD a Linux-distribúcie s najnovšou verziou coreutils 9.4.
K poškodeniu súboru dochádza za pomerne zriedkavých okolností, napríklad spustenie príkazu "emerge -1 dev-lang/go" v Gentoo má za následok inštaláciu súpravy nástrojov Go s poškodenými súbormi v /usr/lib/go/pkg/tool/ linux_amd64/ adresár.kompilovať. Predpokladá sa, že chyba sa začala objavovať po nastavení predvoleného parametra “zfs_dmu_offset_next_sync=1” v openzfs verzii 2.1.4. Zdroj chyby zatiaľ nebol identifikovaný. Ako odporúčané riešenie na blokovanie chyby sa navrhuje nastaviť parameter „/sys/module/zfs/parameters/zfs_dmu_offset_next_sync“ na 0.
Zdroj: opennet.ru
