Repository navigation
SDSTOR-20656: clear wbc chunk selector - #179
Conversation
9acfaee to
ba8fe6d
Compare
19e725e to
319632c
Compare
319632c to
30d232f
Compare
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## dev/v6.x #179 +/- ##
===========================================
Coverage ? 49.92%
===========================================
Files ? 19
Lines ? 1338
Branches ? 588
===========================================
Hits ? 668
Misses ? 275
Partials ? 395 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
7ac8639 to
0be2076
Compare
0be2076 to
c5d3a6a
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Resize races, destruction ordering, and FlatBuffers field placement can cause crashes or compatibility failures.
Review effort: Balanced
Findings: 3
Open (5)
What changed in this PR
Introduces asynchronous chunk cleanup to prevent WBC corruption when destroyed-volume chunks are reused, alongside configurable lazy allocation.
Changes:
- Quiesces selection/resizing before WBC eviction, allocator reset, and chunk reuse.
- Adds dynamic chunk-allocation configuration and CLI override.
- Expands concurrency tests and bumps the package version.
| File | Description |
|---|---|
README.md |
Documents the allocation CLI option. |
conanfile.py |
Bumps version to 6.0.11. |
src/lib/home_blks_config.fbs |
Adds the allocation setting. |
src/lib/homeblks_impl.cpp |
Resolves CLI/config allocation behavior. |
src/lib/homeblks_impl.hpp |
Declares the configuration accessor. |
src/lib/volume/volume.cpp |
Applies allocation configuration to volumes. |
src/lib/volume/volume_chunk_selector.cpp |
Implements synchronized resizing and asynchronous cleanup. |
src/lib/volume/volume_chunk_selector.hpp |
Adds per-volume concurrency state. |
src/lib/volume/tests/test_common.hpp |
Defines the test option default. |
src/lib/volume/tests/test_volume_chunk_selector.cpp |
Adds concurrency and reuse tests. |
src/test/legacy_ublk/homeblk_ublk_cli.cpp |
Exposes the CLI override. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
JacksonYao287
left a comment
There was a problem hiding this comment.
@nnastonen thanks for this PR, I am not quite familiar with homeblks, so just left a concern here.
pls correct me if I am wrong



This change makes chunk release asynchronous and defers returning the chunk to the free pool until cleanup is complete.
New flow:
This PR also addresses this ticket SDSTOR-20651