fix(agent): classify ssh publickey offer timeout
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 33s
CD Pipeline / build-and-deploy (push) Failing after 27s
CD Pipeline / post-deploy-checks (push) Has been skipped
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 33s
CD Pipeline / build-and-deploy (push) Failing after 27s
CD Pipeline / post-deploy-checks (push) Has been skipped
This commit is contained in:
@@ -18,10 +18,12 @@
|
||||
- `ce5bcab8b` 已讓 queue parser / AI Loop 能讀 `remote_ssh_server_accepts_key_then_session_timeout`,但 Harbor repair workflow 的 SSH 診斷尚未輸出該 marker,導致最新 queue 仍只能從舊 repair log 看到泛稱 `remote_ssh_publickey_auth_stalled`。
|
||||
- `.gitea/workflows/harbor-110-local-repair.yaml` 的 `diagnose_ssh_control_channel` 現在在 OpenSSH `Server accepts key` + timeout 時輸出 `harbor_110_remote_ssh_server_accepts_key_then_session_timeout=true` 與 metadata-only `SSH_AUTH user=wooo mode=publickey rc=... classification=server_accepts_key_then_timeout`。
|
||||
- publickey auth stalled 判定同步接受 `Server accepts key` + timeout,不再只依賴 `we sent a publickey packet, wait for reply`。
|
||||
- `ops/runner/read-public-gitea-actions-queue.py` 同步新增 `remote_ssh_publickey_offer_timeout` readback / rollup,讓 110 診斷在 `publickey_offer_timeout` 與 `server_accepts_key_then_timeout` 間波動時都會歸入同一 SSH auth-stall blocker。
|
||||
- workflow 仍維持 hourly / workflow_dispatch、bounded SSH、no secret、no raw SSH log、no reboot / Docker restart / node drain。
|
||||
|
||||
**驗證**:
|
||||
- `python3.11 -m pytest ops/runner/test_cd_controlled_runtime_profile.py ops/runner/test_read_public_gitea_actions_queue.py -q --tb=short -p no:cacheprovider`:通過。
|
||||
- `python3.11 -m pytest ops/runner/test_cd_controlled_runtime_profile.py ops/runner/test_read_public_gitea_actions_queue.py -q --tb=short -p no:cacheprovider`:`68 passed`。
|
||||
- `python3.11 -m pytest ops/runner/test_read_public_gitea_actions_queue.py -q --tb=short -p no:cacheprovider`:`33 passed`。
|
||||
- `python3.11 ops/runner/guard-gitea-runner-pressure.py --root .`、`node scripts/ci/check-gitea-step-env-secrets.js .gitea/workflows/harbor-110-local-repair.yaml`、`git diff --check`:通過。
|
||||
|
||||
**邊界**:只改 Harbor repair workflow 診斷 marker、workflow profile test 與 LOGBOOK;未讀 secret / token / `.env` / raw sessions / SQLite / auth;未讀 authorized_keys 內容或 `.runner` 內容;未使用 GitHub / `gh` / GitHub API;未 workflow_dispatch;未重啟主機、未 restart Docker / Nginx / K3s / DB / firewall;未執行 110 runtime apply。
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
"harbor_110_remote_control_channel_unavailable",
|
||||
"harbor_110_remote_ssh_reachable",
|
||||
"harbor_110_remote_ssh_publickey_auth_stalled",
|
||||
"harbor_110_remote_ssh_server_accepts_key_then_session_timeout",
|
||||
"harbor_110_remote_ssh_publickey_offer_timeout",
|
||||
"harbor_110_remote_ssh_auth_permission_denied_false",
|
||||
"harbor_110_repair_jobs_payload_stale_or_cross_workflow",
|
||||
"bounded_ssh_timeout_seen",
|
||||
@@ -102,7 +102,7 @@
|
||||
"ssh_auth_classification",
|
||||
"remote_control_channel",
|
||||
"remote_ssh_publickey_auth_stalled",
|
||||
"remote_ssh_server_accepts_key_then_session_timeout",
|
||||
"remote_ssh_publickey_offer_timeout",
|
||||
"remote_ssh_auth_permission_denied",
|
||||
"harbor_110_repair_failure_classifier",
|
||||
"harbor_110_repair_jobs_payload_classifier",
|
||||
@@ -123,6 +123,7 @@
|
||||
"bounded_ssh_timeout_seen": true,
|
||||
"remote_ssh_reachable": true,
|
||||
"remote_ssh_publickey_auth_stalled": true,
|
||||
"remote_ssh_publickey_offer_timeout": true,
|
||||
"remote_ssh_server_accepts_key_then_session_timeout": true,
|
||||
"remote_ssh_auth_permission_denied": false,
|
||||
"harbor_110_repair_failure_classifier": "harbor_110_remote_ssh_publickey_auth_stalled",
|
||||
|
||||
Reference in New Issue
Block a user