Het OpenZFS 2.2.1-project ontwikkelt de implementatie van het ZFS-bestandssysteem voor Linux en FreeBSD. De release is opmerkelijk vanwege de toevoeging van kernelondersteuning. Linux 6.6 en een poging om het probleem op te lossen dat leidt tot gegevenscorruptie (het op nul zetten van sommige blokken) in bestanden nadat ze zijn gekopieerd.
Aanvankelijk werd aangenomen dat het probleem zich alleen voordeed in de 2.2.x-branch en werd veroorzaakt door een bug in het blokkloonmechanisme van OpenZFS 2.2.0, waarmee u een kopie van een bestand of een deel ervan kunt maken zonder gegevens te dupliceren. Dit gebeurt door verwijzingen naar bestaande gegevensblokken van het originele bestand in de tweede kopie te gebruiken zonder ze daadwerkelijk te kopiëren. In OpenZFS 2.2.1 was het blokkloonmechanisme standaard uitgeschakeld om het probleem te blokkeren. De instelling zfs_bclone_enabled werd toegevoegd om deze modus te ondersteunen.
Later meldden de ontwikkelaars dat ze het probleem konden reproduceren in configuraties met de OpenZFS 2.1.x-tak. De veronderstelling dat het probleem zich voordoet op systemen met oudere versies van het coreutils-pakket werd evenmin bevestigd – de fout werd succesvol gereproduceerd in FreeBSD en Linux-distributies met de nieuwste versie van coreutils 9.4.
Bestandscorruptie komt onder vrij zeldzame omstandigheden voor, bijvoorbeeld het uitvoeren van de opdracht "emerge -1 dev-lang/go" in Gentoo resulteert in de installatie van de Go-toolkit met corrupte bestanden in de map /usr/lib/go/pkg/tool/ linux_amd64/map compileren. Er wordt aangenomen dat de fout begon te verschijnen na het instellen van de standaardparameter “zfs_dmu_offset_next_sync=1” in openzfs versie 2.1.4. De bron van de fout is nog niet geïdentificeerd. Als aanbevolen oplossing voor het blokkeren van de fout wordt voorgesteld om de parameter “/sys/module/zfs/parameters/zfs_dmu_offset_next_sync” in te stellen op 0.
Bron: opennet.ru
