Repository navigation
SDSTOR-22816: reject duplicate create_pg while inflight - #477
Conversation
63cb52c to
e0401a6
Compare
A retry before create finishes returns RETRY_REQUEST and does not allocate a second repldev. Once the pg is in the map, a later duplicate with the same info returns success.
e0401a6 to
de48a55
Compare
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## stable/v4.x #477 +/- ##
==============================================
Coverage ? 53.72%
==============================================
Files ? 39
Lines ? 6905
Branches ? 941
==============================================
Hits ? 3710
Misses ? 2793
Partials ? 402 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
🟡 Changes recommended
The new regression test can deadlock when a fatal assertion fails.
1 open finding
What changed in this PR
Prevents concurrent duplicate PG creation from allocating multiple replication devices.
Changes:
- Tracks in-flight PG creations under the PG lock.
- Returns
RETRY_REQUESTfor concurrent duplicates and adds regression coverage. - Bumps the package version to 4.3.6.
| File | Description |
|---|---|
hs_pg_tests.cpp |
Tests duplicate creation during an in-flight request. |
hs_pg_manager.cpp |
Adds atomic admission and cleanup for PG creation. |
hs_homeobject.hpp |
Stores in-flight PG identifiers. |
conanfile.py |
Bumps package version. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
feel free to merge once Yawen gives her approval. |

A retry before create finishes returns RETRY_REQUEST and does not allocate a second repldev. Once the pg is in the map, a later duplicate with the same info returns success.