Message ID | cover.1684375729.git.wqu@suse.com (mailing list archive) |
---|---|
Headers | show |
Series | btrfs-progs: csum-change: add the initial support for offline csum type change | expand |
On Thu, May 18, 2023 at 10:10:38AM +0800, Qu Wenruo wrote: > [CHANGELOG] > v2: > - Skip csum item checks if the fs is under csum change > Tree-checker can be too sensitive if the csum size doesn not match the > old csum size, which can lead to false alerts on overlapping csum > items. > > But we still want the tree checker functionality overall, so just > disable csum item related checks for csum change. I still see some errors with v2, the same test that rotates the checksum types on an increasingly filled filesystem (the one I sent you before): ERROR: failed to insert csum change item: File exists ERROR: failed to generate new data csums: File exists WARNING: reserved space leaked, flag=0x4 bytes_reserved=16384 extent buffer leak: start 610811904 len 16384 extent buffer leak: start 5242880 len 16384 WARNING: dirty eb leak (aborted trans): start 5242880 len 16384
On Thu, May 18, 2023 at 10:10:38AM +0800, Qu Wenruo wrote: > [TODO] > - Support for resume > Currently we won't resume an interrupted csum conversion. > Although the design should be able to handle any interruption at data > csum conversion part, and as long as metadata csum writes are atomic, > the metadata rewrites should also be fine. > > - Support for revert if errors are found > If we hit data csum mismatch and can not repair from any copy, then > we should revert back to the old csum. > > - Suppot for precaustious metadata check > We'd better read and very metadata before rewriting them. > > - Extra test cases As the todo list for that feature is still long and it's behind the experimental build I'll keep the patches in devel, please send incremental fixes or further updates. Thanks.
On 2023/5/22 20:14, David Sterba wrote: > On Thu, May 18, 2023 at 10:10:38AM +0800, Qu Wenruo wrote: >> [CHANGELOG] >> v2: >> - Skip csum item checks if the fs is under csum change >> Tree-checker can be too sensitive if the csum size doesn not match the >> old csum size, which can lead to false alerts on overlapping csum >> items. >> >> But we still want the tree checker functionality overall, so just >> disable csum item related checks for csum change. > > I still see some errors with v2, the same test that rotates the checksum > types on an increasingly filled filesystem (the one I sent you before): > > ERROR: failed to insert csum change item: File exists Oh sh*t, my tests only do one csum type cycle, which is CRC32->BLAKE2->SHA256->XXHASH, and moved to the next mkfs. But your incremental tests do multiple cycles (the incremental part is not that a big deal, as after a full conversion it's no different than a new fs but filled to that state). In that case, even my v2 patches forgot to delete the csum change item in root tree. And one cyclic run won't fail, because they all have different offset, but multiple cyclic runs would fail as long as we hit the second time for the same target csum type. The only thing saved my backend is the detailed error messages... Thanks, Qu > ERROR: failed to generate new data csums: File exists > WARNING: reserved space leaked, flag=0x4 bytes_reserved=16384 > extent buffer leak: start 610811904 len 16384 > extent buffer leak: start 5242880 len 16384 > WARNING: dirty eb leak (aborted trans): start 5242880 len 16384