O projeto OpenZFS 2.2.1, que desenvolve a implementação do sistema de arquivos ZFS para Linux e FreeBSD. Esta versão destaca-se pela adição de suporte ao kernel. Linux 6.6 e uma tentativa de eliminar o problema que leva à corrupção de dados (zeragem de alguns blocos) em arquivos após serem copiados.
Inicialmente, presumiu-se que o problema aparece apenas na ramificação 2.2.x e é causado por um erro no mecanismo de clonagem de blocos incluído no OpenZFS 2.2.0, que permite criar uma cópia de um arquivo ou parte dele sem duplicar dados, usando na segunda cópia referências a blocos de dados já existentes do arquivo de origem sem sua cópia real. No OpenZFS 2.2.1, para bloquear o problema, o mecanismo de clonagem de bloco foi desabilitado por padrão e a configuração zfs_bclone_enabled foi adicionada para retornar o suporte para este modo.
Posteriormente, os desenvolvedores relataram ter reproduzido o problema em configurações com a ramificação OpenZFS 2.1.x. A suposição de que o problema se manifesta em sistemas com versões mais antigas do pacote coreutils também não foi confirmada — o erro foi reproduzido com sucesso no FreeBSD e Linux-distribuições com a versão mais recente do coreutils 9.4.
A corrupção de arquivos ocorre em circunstâncias bastante raras, por exemplo, executar o comando "emerge -1 dev-lang/go" no Gentoo resulta na instalação do kit de ferramentas Go com arquivos corrompidos no diretório /usr/lib/go/pkg/tool/ diretório linux_amd64/.compile. Presume-se que o erro começou a aparecer após definir o parâmetro padrão “zfs_dmu_offset_next_sync=1” no openzfs versão 2.1.4. A origem do erro ainda não foi identificada. Como solução alternativa recomendada para bloquear o erro, propõe-se definir o parâmetro “/sys/module/zfs/parameters/zfs_dmu_offset_next_sync” como 0.
Fonte: opennet.ru
