fixup! fixup! fixup! ZBigFile: Add ZBlk format option 'h' (heuristic) (4)
'ZBlk0' and 'ZBlk1' always only change the block that's explicitly altered, while zblk format 'auto' may also alter blocks different to the explicitly changed blocks. In other words, as @kirr noted in nexedi/wendelin.core!20 (comment 198863), format 'auto' break the invariant "transaction changes ZBlk objects only for modified blocks of array" [1] Breaking this invariant leads to two failed WCFS tests - 'test_wcfs_crash_old_data' and 'test_wcfs_watch_vs_access'. As suggested in nexedi/wendelin.core!20 (comment 198863) instead of patching tests, we rather try not to break this invariant with format 'auto'. This is exactly what this patch does. Instead of changing the previously filled up block, we immediately change a blocks format if we can assume that it is already full. [1] nexedi/wendelin.core!20 (comment 198863)
Showing