docs(buglog): bug-1957 config completed (97f7c800)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
97f7c800f1
commit
ff1de90ae3
2 changed files with 8 additions and 3 deletions
|
|
@ -11,7 +11,7 @@ occurrences: 1
|
|||
files: ["src/worker/src/xcecd_worker.c", "src/frontend/apiserver/backend/convert_pure.go", "src/schema/controller.capnp"]
|
||||
tags: ["worker", "job-control", "signal", "lsf"]
|
||||
related: ["bug-1954", "bug-1940"]
|
||||
fix_commits: ["367af11a"]
|
||||
fix_commits: ["367af11a", "97f7c800"]
|
||||
---
|
||||
|
||||
# bug-1957: plain job kill and stop are single signals: no SIGKILL escalation, no catchable stop
|
||||
|
|
@ -37,6 +37,7 @@ SIGTSTP first, with SIGSTOP only if the job has not stopped by itself.
|
|||
indefinitely (no clean-up window followed by a guaranteed end), and a plain
|
||||
stop gives the job no chance to prepare.
|
||||
**Found by:** user review of the bug-1954 fix, 2026-10-10.
|
||||
|
||||
## Environment
|
||||
- OS: no /etc/os-release; Docker container; NixOS kernel; kernel Linux 6.18.33 x86_64
|
||||
- libc: glibc 2.42-47 (interpreter /nix/store/wb6rhpznjfczwlwx23zmdrrw74bayxw4-glibc-2.42-47/lib/ld-linux-x86-64.so.2)
|
||||
|
|
@ -51,6 +52,7 @@ stop gives the job no chance to prepare.
|
|||
3. The job keeps running.
|
||||
- Frequency: deterministic (by code reading; confirmed by the RED test of the fix)
|
||||
- Evidence: the code sites in Description; no logs kept.
|
||||
|
||||
## Root cause
|
||||
The job-control path had no notion of a graceful action: `JobSignal`
|
||||
carried only `signo` and `force`; the apiserver handler pre-filled a single
|
||||
|
|
@ -86,6 +88,8 @@ signal exact).
|
|||
- Briefs `job-time-window` and `host-failure-job-recovery` updated to reuse
|
||||
this sequence for end-time kills and requeue.
|
||||
|
||||
UPDATE (2026-10-10): Config completed in 97f7c800: job.terminate_interval is defaulted (10 s) and validated by the loader (TestInitConf_TerminateInterval*, RED on the default case before), described in app_schema.json and documented in src/docs/xce.md. It is an API-server setting; cluster-internal kills (e.g. requeue in host-failure-job-recovery) will need the interval from cluster config.
|
||||
|
||||
## Verification
|
||||
- Test: `src/worker/testsuite/test_job_signal.c`
|
||||
`test_kill_escalates_to_sigkill_when_ignored`,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue