github-actions[bot] commented on code in PR #64496:
URL: https://github.com/apache/doris/pull/64496#discussion_r3411004274


##########
be/src/io/cache/block_file_cache.cpp:
##########
@@ -880,7 +829,7 @@ void 
BlockFileCache::fill_holes_with_empty_file_blocks(FileBlocks& file_blocks,
         auto hole_size = range.right - current_pos + 1;
 
         file_blocks.splice(file_blocks.end(),
-                           split_range_into_cells(hash, context, current_pos, 
hole_size,
+                           split_range_into_cells(hash, block_context, 
current_pos, hole_size,

Review Comment:
   This repair pass should not run until the disk cache load has completed. 
`initialize_unlocked()` starts the repair thread immediately after 
`_storage->init(this)`, but `FSFileCacheStorage::init()` loads existing cache 
directories on its own background thread and only sets `_async_open_done` at 
the end. With a small repair interval, or after a startup read directly loads 
one expiration for this hash, `_files` can contain only a partial view; this 
code can then treat that one expiration as canonical and delete another 
expiration directory that the loader has not processed yet. After loading 
completes the same hash would have multiple expiration times and be skipped, so 
the early pass can drop valid cached blocks. Please gate this on 
`_async_open_done` before scanning/removing duplicate dirs, or start the repair 
checker only after the load finishes.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to