The OpenZFS 2.2.1 project, which develops the ZFS file system implementation for Linux and FreeBSD. The release is notable for the addition of kernel support. Linux 6.6 and an attempt to eliminate the problem that leads to data corruption (zeroing of some blocks) in files after they are copied.
Initially, it was assumed that the problem appears only in the 2.2.x branch and is caused by an error in the block cloning mechanism included in OpenZFS 2.2.0, which allows you to create a copy of a file or part of it without duplicating data, using in the second copy references to already existing data blocks of the source file without their actual copying. In OpenZFS 2.2.1, to block the problem, the block cloning mechanism was disabled by default, and the zfs_bclone_enabled setting was added to return support for this mode.
Later, the developers reported reproducing the issue in configurations with the OpenZFS 2.1.x branch. The assumption that the problem manifests itself on systems with older releases of the coreutils package was also not confirmed—the error was successfully reproduced in FreeBSD and Linux-distributions with the latest release of coreutils 9.4.
File corruption occurs under fairly rare circumstances, for example, running the "emerge -1 dev-lang/go" command in Gentoo results in the installation of the Go toolkit with corrupt files in the /usr/lib/go/pkg/tool/linux_amd64/ directory. compile. It is assumed that the error began to appear after setting the default parameter “zfs_dmu_offset_next_sync=1” in openzfs version 2.1.4. The source of the error has not yet been identified. As a recommended workaround for blocking the error, it is proposed to set the parameter “/sys/module/zfs/parameters/zfs_dmu_offset_next_sync” to 0.
Source: opennet.ru
