Repository navigation
fix(server): preserve container exit status - #3311
Merged
imbajin merged 1 commit intoOct 12, 2026
Merged
Conversation
Own and wait for the foreground launcher. Interrupt and reap readiness and partition checks. Preserve cooperative shutdown across duplicate signals. Cover exit status and pending-probe lifecycle contracts. Document startup deadline and signal behavior.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3311 +/- ##
============================================
- Coverage 52.29% 52.26% -0.03%
+ Complexity 6052 6046 -6
============================================
Files 762 762
Lines 67399 67399
Branches 9138 9138
============================================
- Hits 35244 35224 -20
- Misses 28601 28628 +27
+ Partials 3554 3547 -7 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This was referenced Oct 11, 2026
MrJs133
approved these changes
Oct 12, 2026
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.
Purpose
The Server container watched a daemon JVM with
tail --pidand returned 1 whenever it stopped. A normal JVM exit 0 and an application exit 42 therefore looked identical. The entrypoint now owns the existing foreground launcher and returns its status after readiness, including 137 for SIGKILL.Changes
Validation
The native lifecycle cases passed, covering normal and failing exits, SIGKILL, direct and process-group signals, early exits, startup deadlines, pending partition checks and real stalled HTTP readiness probes. They also check recorded child processes are gone after cooperative shutdown. The existing configuration, encoding and foreground launcher signal suites passed. Formatting and a clean Java 17 reactor compile passed; three independent reviews and re-review found no remaining actionable issue.
The process tests exercise the actual shell scripts with a small JVM substitute. Real Linux container/OOM and Kubernetes acceptance remain separate follow-up checks. A startup timeout requests termination and returns 1 without adding an indefinite wait; an unresponsive JVM still depends on container termination for final cleanup.
The same org branch passed its selected CI, including startup contracts, Server/RocksDB/HStore and cluster tests, container/deployment checks, platform compatibility and CodeQL.
Org validation: hugegraph#289
Documentation
Doc - Done:
docker/README.md.Paired website documentation: ASF #517. Coordinate the documentation merge with this code change.
ASF CI gate: required and selected product checks and patch coverage passed, but project coverage remains failing after the final bounded Memory rerun and complete report merge. No further reruns or threshold changes are planned; this coverage gate remains open.