Доступний проміжний випуск проекту OpenZFS 2.2.1, який розвиває реалізацію файлової системи ZFS для Linux та FreeBSD. Випуск примітний додаванням підтримки ядра Linux 6.6 та спробою усунення проблеми, що призводить до пошкодження даних (обнулення частини блоків) у файлах після їх копіювання.
Спочатку передбачалося, що проблема виявляється лише у гілці 2.2.x і викликана помилкою у включеному в OpenZFS 2.2.0 механізмі клонування блоків, що дозволяє створити копію файлу або його частини без дублювання даних, використовуючи у другій копії посилання на вже існуючі блоки даних вихідного файлу без їх фактичного копіювання. У версії OpenZFS 2.2.1 для блокування проблеми механізм клонування блоків було вимкнено за замовчуванням, а для повернення підтримки даного режиму додано налаштування zfs_bclone_enabled.
Пізніше розробники заявили про відтворення проблеми і в конфігураціях із гілкою OpenZFS 2.1.x. Не підтвердилися і припущення, що проблема проявляється на системах зі старими випусками пакету coreutils - помилку вдалося відтворити у FreeBSD і в Linux-дистрибутиви зі свіжим випуском coreutils 9.4.
Пошкодження файлів проявляється за досить рідкісного збігу обставин, наприклад, виконання в Gentoo команди «emerge -1 dev-lang/go» призводить до встановлення інструментарію для мови Go з пошкодженням файлів у каталозі /usr/lib/go/pkg/tool/linux_amd64/ compile. Передбачається, що помилка почала виявлятись після виставлення за умовчанням параметра «zfs_dmu_offset_next_sync=1» у версії openzfs 2.1.4. Джерело помилки поки що не виявлено. Як рекомендований обхідний шлях блокування помилки запропоновано виставити в 0 параметр «/sys/module/zfs/parameters/zfs_dmu_offset_next_sync».
Джерело: opennet.ru
