Details
-
Bug
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
0.23.1, 2.0.0-alpha
Description
A race condition between block pool initialization and the directory scanner may cause a mass deletion of blocks in multiple storages.
If block pool initialization finds a block on disk that is already in the replica map, it deletes one of the blocks based on size, GS, etc. Unfortunately it always deletes one of the blocks even if identical, thus the replica map must be empty when the pool is initialized.
The directory scanner starts at a random time within its periodic interval (default 6h). If the scanner starts very early it races to populate the replica map, causing the block pool init to erroneously delete blocks.