8000 fix(server): synchronize shared board snapshot access by opsmon · Pull Request #256 · aenix-io/aeman · GitHub
[go: up one dir, main page]

Skip to content

fix(server): synchronize shared board snapshot access - #256

Merged
kvaps merged 1 commit into
aenix-io:mainfrom
opsmon:issue-238
Nov 2, 2026
Merged

kvaps merged 1 commit into
aenix-io:mainfrom
opsmon:issue-238

Conversation

@opsmon
@opsmon opsmon commented Sep 27, 2026
Copy link
Copy Markdown
Contributor

Summary

  • capture the board identifier under the entry mutex before reloading
  • keep backend I/O outside the entry critical section
  • give historical-cache storage, flights, and every recipient independent snapshots
  • document the immutable construction-time member-hook invariant

Testing

  • added deterministic reload locking and error-path tests
  • added cache hit, initial put, replacement, empty, eviction, and in-flight follower ownership tests
  • passed the complete local CI-equivalent suite with the race detector

Fixes #238

Capture the board identifier under the entry mutex without holding it across backend I/O. Give the historical cache, in-fl
9A0B
ight result, and each recipient independent snapshots so caller mutations cannot leak between owners.

Document the member hook as a construction-time immutable value instead of adding runtime locking around an assignment that cannot race after publication.

Fixes aenix-io#238

Assisted-by: LLM
@kvaps
kvaps merged commit 19b02f2 into aenix-io:main Nov 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Shared board state is read without its lock in three places

2 participants

0