dataroaring opened a new pull request, #61844:
URL: https://github.com/apache/doris/pull/61844

   ## Summary
   - When a segment file is missing (e.g., removed by GC or external cause), 
queries and loads now skip the missing segment instead of failing with IO error 
reported to users.
   - Controlled by mutable BE config `ignore_not_found_segment` (default 
`true`), togglable at runtime via HTTP API.
   - Covers all three segment-loading paths: `SegmentLoader::load_segments`, 
`LazyInitSegmentIterator::init`, and `BetaRowset::load_segments`.
   
   ## Changes
   | File | Change |
   |------|--------|
   | `config.h/cpp` | New `ignore_not_found_segment` config (mutable bool, 
default true) |
   | `segment_loader.cpp` | `load_segments()` catches NOT_FOUND and skips with 
warning |
   | `lazy_init_segment_iterator.cpp/h` | `init()` catches NOT_FOUND, returns 
OK with null iterator; `next_batch()`/`current_block_row_locations()` return 
EOF on null |
   | `beta_rowset.cpp` | `load_segments()` catches NOT_FOUND and skips; 
`load_segment()` gets DBUG injection point |
   | `ignore_not_found_segment_test.cpp` | 9 test cases covering all paths with 
config on/off |
   
   ## Test plan
   - [ ] New UT: `IgnoreNotFoundSegmentTest` (9 cases) covering BetaRowset, 
SegmentLoader, and LazyInitSegmentIterator paths
   - [ ] Verify config toggle works at runtime via BE HTTP API
   - [ ] Regression: existing segment_cache_test still passes
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
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