Want consistent strategy for runtime/persistent config changes
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Refactor
- Clarity
- Needs clarification
- Activity status
- Quiet
- Tech stack
- rust
- Domain
- backend, distributed-systems
Research direction
Start by auditing the handlers that update runtime state and sled::Db, comparing whether each performs the database transaction or runtime update first. Map the concurrency gaps described in the issue and define a consistent strategy that preserves runtime and persistent-state consistency across interleaved requests and daemon restarts.
Written by the indexing model from the issue text.
Description
When it comes to storing persistent state (for recovering from daemon restarts/crashes, currently implemented using sled::Db) and updating runtime state, there are a lot of inconsistencies in the way it's being applied.
Some handlers do the DB transaction first, others do runtime first. Many have concurrency gaps (e.g. interleaving add/del requests can result in inconsistencies between runtime and persistent state).
This is something we should really consider revamping so we can avoid having weird correctness bugs crop up in live deployments.
- Dominant language
- Rust
- Stars
- 94
- Forks
- 6
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 12
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from oxidecomputer/maghemite
-
Bug mgd ndp rust
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
oxidecomputer/maghemite#802 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 52/100
oxidecomputer/maghemite#918 · 2 comments ·
-
ddm
Difficulty 4/5 3-5 days Newbie friendliness 35/100
oxidecomputer/maghemite#914 ·
-
bfd Bug mgd needs testing rust
Difficulty 4/5 3-5 days Newbie friendliness 48/100
oxidecomputer/maghemite#865 ·
-
bfd Bug mgd needs testing rust
Difficulty 3/5 1-2 days Newbie friendliness 72/100
oxidecomputer/maghemite#864 ·
All issues in oxidecomputer/maghemite
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100