aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-20 15:42:57 -0500
committerCraig Jennings <c@cjennings.net>2026-07-20 15:42:57 -0500
commit577088700e78afc9ee1d5cad352768cdf108ffe8 (patch)
treed448f1c320a98a6b79cda752c0062464fba7bee2
parent6de55d2942f3ea0d859c98816076fc6ce3601b63 (diff)
downloadarchsetup-577088700e78afc9ee1d5cad352768cdf108ffe8.tar.gz
archsetup-577088700e78afc9ee1d5cad352768cdf108ffe8.zip
docs: close run_step state + exit-code task
-rw-r--r--todo.org4
1 files changed, 3 insertions, 1 deletions
diff --git a/todo.org b/todo.org
index b062987..f0f1bbe 100644
--- a/todo.org
+++ b/todo.org
@@ -1474,7 +1474,9 @@ CLOSED: [2026-07-20 Mon]
Fixed in aef074f: extracted check_disk_space using df -P (wrap-safe) and a KB comparison (no truncation bias); non-numeric df output falls back to zero so a malformed read aborts loudly. TDD via tests/installer-steps/test_check_disk_space.py.
Grading: Major severity (aborts a valid install) x some (df wraps long device names on a live ISO / device-mapper root) = P3 = [#C].
archsetup:487 parses =df / | awk 'NR==2'=, which reads the device-name line (empty $4 -> 0 GB) when df wraps; archsetup:488 also integer-truncates the GB compare against the 20 GB floor. Fix: =df -P /= (single-line) or =df --output=avail=; compare in KB to avoid the rounding bias. See findings doc (S1).
-** TODO [#C] Installer run_step state + exit-code handling :bug:solo:
+** DONE [#C] Installer run_step state + exit-code handling :bug:solo:
+CLOSED: [2026-07-20 Mon]
+Fixed in 6de55d2: run_step records the state marker whenever the step function returns (a return past error_fatal's exit means only a non-fatal warning is left), added local to run_step/show_status, and captured pacman's real exit in the refresh loop. TDD via tests/installer-steps/test_run_step.py.
Grading: Major severity (resume re-runs steps and can abort on a survivable warning) x some (a step whose last action is a non-fatal failure) = P3 = [#C].
archsetup:298 marks a step complete only when its function returns 0, but error_warn/run_task return 1, so a non-fatal-failing step never writes its marker and re-runs on resume. Also archsetup:1034 reports =$?= of the =false= test, not pacman's real exit code; and run_step locals (290/318) leak to global scope. Fix: step functions =return 0= explicitly (or gate run_step on a per-step error flag); capture the real exit code; add =local=. See findings doc (S1).
** TODO [#C] cmail password decrypted world-readable before chmod :bug:security:solo:quick:cmail: