Signals don't reach the server process, so `docker stop` always waits for the timeout
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 25/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- docker, node.js, shell, typescript
Research direction
Start with docker-entrypoint.sh and the comment above its final command, then inspect server-lifecycle.ts:75-76 and docker-entrypoint.test.ts. Verify that the container’s server process becomes PID 1, signal handlers run during docker stop, and the test covers the entrypoint behavior.
Written by the indexing model from the issue text.
Description
Description
docker-entrypoint.sh ends with:
cd /graph-explorer/packages/graph-explorer-proxy-server && NODE_ENV=production node src/node-server.ts
No exec, so sh stays PID 1 and node runs as its child. Docker sends SIGTERM to PID 1 only, so sh gets it and node never does.
server-lifecycle.ts:75-76 registers handlers for both signals:
onSignal("SIGTERM", () => shutdown("SIGTERM"));
onSignal("SIGINT", () => shutdown("SIGINT"));
Those handlers have never run in a container. Every docker stop sits through the full 10-second grace period and then takes SIGKILL, so in-flight requests are cut rather than drained.
Expected
docker stop shuts down promptly and the graceful shutdown path runs.
Fix
Add exec to that last line. Note the comment directly above it, # Stubbed in tests — update docker-entrypoint.test.ts if changing, so the test needs updating too. Worth adding a case that asserts the server process is PID 1.
[!IMPORTANT]
Internal only — this issue is maintained by the core team and is not accepting external contributions.
- Dominant language
- TypeScript
- Stars
- 481
- Forks
- 110
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 9
Contributor guide
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 aws/graph-explorer
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
aws/graph-explorer#2199 · 2 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
aws/graph-explorer#2196 · 2 comments ·
-
help wanted needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
aws/graph-explorer#2060 ·
-
help wanted reliability usability
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
aws/graph-explorer#1977 · 2 comments ·
-
documentation usability
Difficulty 2/5 1-2 days Newbie friendliness 68/100
aws/graph-explorer#1719 ·
All issues in aws/graph-explorer
Similar issues
-
comp/dashboard P3 type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
NousResearch/hermes-agent#117722 ·
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 76/100
-
code-quality refactoring
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
github/gh-aw-firewall#8816 ·
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·