fix: [nomad-step-5] S5.4 — dispatcher.sh nomad exit code extraction (dead != failure) (#991)
This commit is contained in:
parent
9f94b818a3
commit
9806ed40df
1 changed files with 6 additions and 4 deletions
|
|
@ -683,10 +683,10 @@ _launch_runner_nomad() {
|
||||||
# Get allocation logs
|
# Get allocation logs
|
||||||
logs=$(nomad alloc logs -short "$alloc_id" 2>/dev/null || true)
|
logs=$(nomad alloc logs -short "$alloc_id" 2>/dev/null || true)
|
||||||
|
|
||||||
# Try to get exit code from JSON output
|
# Try to get exit code from alloc status JSON
|
||||||
# Nomad alloc status -json has .TaskStates["<task_name>].Events[].ExitCode
|
# Nomad alloc status -json has .TaskStates["<task_name>"].Events[].ExitCode
|
||||||
local alloc_exit_code
|
local alloc_exit_code
|
||||||
alloc_exit_code=$(echo "$final_status_json" | jq -r '.TaskStates["runner"].Events[-1].ExitCode // empty' 2>/dev/null) || alloc_exit_code=""
|
alloc_exit_code=$(nomad alloc status -json "$alloc_id" 2>/dev/null | jq -r '.TaskStates["runner"].Events[-1].ExitCode // empty' 2>/dev/null) || alloc_exit_code=""
|
||||||
|
|
||||||
if [ -n "$alloc_exit_code" ] && [ "$alloc_exit_code" != "null" ]; then
|
if [ -n "$alloc_exit_code" ] && [ "$alloc_exit_code" != "null" ]; then
|
||||||
exit_code="$alloc_exit_code"
|
exit_code="$alloc_exit_code"
|
||||||
|
|
@ -694,12 +694,14 @@ _launch_runner_nomad() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If we couldn't get exit code from alloc, check job state as fallback
|
# If we couldn't get exit code from alloc, check job state as fallback
|
||||||
|
# Note: "dead" = terminal state for batch jobs (includes successful completion)
|
||||||
|
# Only "failed" indicates actual failure
|
||||||
if [ "$exit_code" -eq 0 ]; then
|
if [ "$exit_code" -eq 0 ]; then
|
||||||
local final_state
|
local final_state
|
||||||
final_state=$(echo "$final_status_json" | jq -r '.Status // empty' 2>/dev/null) || final_state=""
|
final_state=$(echo "$final_status_json" | jq -r '.Status // empty' 2>/dev/null) || final_state=""
|
||||||
|
|
||||||
case "$final_state" in
|
case "$final_state" in
|
||||||
failed|dead)
|
failed)
|
||||||
exit_code=1
|
exit_code=1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue