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]