Repository navigation
fix: make repository worker ownership and shutdown lifecycle reliable - #26
Merged
Merged
Conversation
ReallocAll
marked this pull request as ready for review
October 15, 2026 00:05
ReallocAll
force-pushed
the
fix/worker-lifecycle-ownership
branch
2 times, most recently
from
October 15, 2026 02:29
a0fe6d3 to
0672f08
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 ordinaryplugins/*.whlinstallation. 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.