โครงการ 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 เวอร์ชันล่าสุด
ไฟล์เสียหายเกิดขึ้นได้ในบางกรณีที่ค่อนข้างหายาก ตัวอย่างเช่น การรันคำสั่ง "emerge -1 dev-lang/go" บน Gentoo ส่งผลให้มีการติดตั้ง Go toolchain ซึ่งทำให้ไฟล์ในไดเร็กทอรี /usr/lib/go/pkg/tool/linux_amd64/compile เสียหาย เชื่อว่าข้อผิดพลาดเริ่มปรากฏให้เห็นหลังจากตั้งค่าพารามิเตอร์ "zfs_dmu_offset_next_sync=1" เป็นค่าเริ่มต้นใน openzfs 2.1.4 ยังไม่ระบุสาเหตุของข้อผิดพลาด วิธีแก้ปัญหาที่แนะนำคือการตั้งค่าพารามิเตอร์ "/sys/module/zfs/parameters/zfs_dmu_offset_next_sync" เป็น 0
ที่มา: opennet.ru
