Skip to content

fix: make repository worker ownership and shutdown lifecycle reliable - #26

Merged
ReallocAll merged 4 commits into
mainfrom
fix/worker-lifecycle-ownership
Oct 15, 2026
Merged

ReallocAll merged 4 commits into
mainfrom
fix/worker-lifecycle-ownership

Conversation

@ReallocAll

@ReallocAll ReallocAll commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

Workers could outlive BDS, and one short RPC timeout could block the next startup.

Confirmed BDS death cancels background work at a safe checkpoint and exits. An atomic commit already in progress finishes first; uncommitted RAW remains recoverable. Plugin reload keeps running work through a 15-second handoff. Process identity checks, bounded reconnects, durable results and a lifetime OS writer lock prevent unsafe takeover and concurrent writers.

Amulet-LevelDB uses the maintained, SHA256-pinned 3.0.8a1. Linux Python 3.12/3.13 full-suite initialization loads GCC's unwinder before Endstone's bundled LLVM unwinder in tests.

Windows uses command-line installation into the server's Python environment, with no EndKeep wheel left in plugins/. Linux supports that method and ordinary plugins/*.whl installation. Linux Python 3.15 wheel-directory installation first installs Zstandard in the server Python environment. No Endstone modifications are required for the supported installation paths.

Source: a0fe6d30a984fe01f258e96a6ccfdccccb636448. Unmodified-Endstone real-BDS validation passed 12/12 environments, 93/93 checks each: Windows Python 3.12–3.15 with command-line installation, and Linux Python 3.12–3.15 with both installation methods. The run verifies Endstone files are unchanged and covers real backup/restore, reload, server exit, worker cancellation, restart recovery and single-writer safety. Details: Lab #72.

Limits: a forcibly killed Worker needs plugin/server restart; blocked kernel I/O/fsync can delay exit. Python 3.15 currently builds Zstandard with compiler tools.

No merge or release.

@ReallocAll
ReallocAll force-pushed the fix/worker-lifecycle-ownership branch 2 times, most recently from a0fe6d3 to 0672f08 Compare October 15, 2026 02:29
@ReallocAll
ReallocAll merged commit 0e3334e into main Oct 15, 2026
11 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.

1 participant