fix(runner): gate non110 keepalive on host pressure [skip ci]

This commit is contained in:
Your Name
2026-07-01 09:19:13 +08:00
parent aa4c49b1ef
commit 83b7aa491e
3 changed files with 54 additions and 0 deletions

View File

@@ -11,6 +11,23 @@
**邊界**:未讀 token / secret / `.env` / raw sessions / SQLite / auth未讀 `.runner` 內容,未使用 GitHub / `gh` / GitHub API未 workflow_dispatch未重啟主機、未 restart Docker / Nginx / K3s / DB / firewall本輪 runtime 寫入限於 188 user-level runner service enable / start 與 keepalive timer enable。
## 2026-07-01 — 09:17 non-110 keepalive pressure guard / 188 CPU loop stop
**照主線修正的問題**
- 09:14 重新打開 188 non-110 runner 後live 188 再次出現 `awoooi-cd-*-api-tests``k3s-postgres-recovery` CPU 壓力;根因不是 service disable 不生效,而是 keepalive timer / sentinel 會把 runner 重新拉起。
- 對 188 做受控止血disable / stop `awoooi-non110-runner-keepalive.timer`、stop keepalive service、移除 `.awoooi-non110-runner-enabled` sentinel、disable / stop runner service 與 autostart path並停止當下 `awoooi-cd-*-api-tests` / `stockplatform-ubuntu-runner` container讀回 runner / autostart / keepalive 全部 `inactive`,未讀 `.runner` 內容。
- `ops/runner/install-awoooi-non110-runner-user-service.sh` 補上 `PRESSURE_GUARD=/usr/local/bin/awoooi-wait-host-web-build-pressure.sh`runner service `ExecStartPre`、autostart service 與 keepalive service 在啟動前都要通過 host pressure guard。
- rollback unit / `--rollback` 同步 stop / disable keepalive timer、stop keepalive service、reset failed、移除 enable sentinel避免下一次只關 runner service 卻被 keepalive 再拉起。
- 測試補上 service / keepalive / rollback / readback 斷言,確保未來 non-110 runner 恢復時仍維持 pressure guard 與可回滾。
**驗證**
- `python3.11 -m pytest ops/runner/test_install_awoooi_non110_runner_user_service.py -q` 通過2 passed
- `bash -n ops/runner/install-awoooi-non110-runner-user-service.sh scripts/ci/wait-host-web-build-pressure.sh` 通過。
- `python3.11 ops/runner/guard-gitea-runner-pressure.py --root .` 通過,`auto_branch_events_on_110=0``generic_runner_labels=0`
- `git diff --check` 通過。
**邊界**:本輪只做 188 user-level non-110 runner 降壓與 source guard 固化;未讀 secret / token / `.env` / raw sessions / SQLite / auth未讀 `.runner` 內容;未使用 GitHub / `gh` / GitHub API未 workflow_dispatch未重啟主機、未 restart Docker / Nginx / K3s / DB / firewall未恢復 legacy / generic runner。
## 2026-07-01 — 09:14 non-110 runner controlled apply / Harbor remote control-channel / B5 Docker socket fail-fast
**照主線修正的問題**