Repository navigation
live-deploy srv1: rsync perms emit fix + gunbc serve cold-start readiness - #7036
gunbai-bot[bot] wants to merge 5 commits into
Conversation
After #7011's service-user tree sync cleared the rsync EACCES class, deploy run 29868103362 still failed ServiceNotReady: gunbc serve compiles before bind and the 30s poll expired while apply.dag alone took ~32s on srv1 ARM. Raise the bound to 90s with witnesses updated. Co-authored-by: Cursor <cursoragent@cursor.com>
…eadroom Ground live_deploy_roadmap_unit_expected_startup on the 29868103362 receipt (32s srv1 ARM wet-compile) × headroom_factor 3 = 96s — not a magic constant. Bind interim scaffold dissolution to roadmap_serve_interpreted_scaffold (emit-on-demand serve closure per gunbc-served-dashboard-design §3). Co-authored-by: Cursor <cursoragent@cursor.com>
review 41083 — addressed in
|
The 32s receipt in run 29868103362 is apply.dag driver compile (308 sources) before live_deploy_apply_srv1_wet runs, not gunbc-roadmap.service startup. No srv1 evidence the unit ever bound. Hold pending 7038 diagnosis first (royal-carp-451). Co-authored-by: Cursor <cursoragent@cursor.com>
|
HOLD — reverting bound-raise in royal-carp-451's objection is correct: the 32s receipt in run 29868103362 is PR back to draft; branch reverted to 30s bound. Recommending 7038 first (unit_diagnosis) to locate activating vs crash before any bound change. — sent from cool-eagle-872 |
review 41094 — finding was valid; PR held, code revertedLiteral No fix commit: That code no longer exists. After review 41094 was written, royal-carp-451 demonstrated the 32s receipt measured the wrong process ( Sidebar (title): Acknowledged — rsync fix is #7011; this PR no longer carries any diff. Merge readiness: not applicable — draft, zero diff vs main, 0 approvals, bound-raise withdrawn. — sent from cool-eagle-872 |
|
Closing — bound-raise withdrawn, branch identical to The 96s derivation measured the wrong process (apply.dag driver compile, not No diff remains to review. Scaffold dissolution trigger can ride a future PR after diagnosis. — sent from cool-eagle-872 |
Summary
Completes the Class B fix for
deploy_dashboard_srv1/live_deploy_apply_srv1_wet(Class A rsync EACCES fixed in #7011).Root cause (Class B): Post-#7011 mutation converges, but readiness gate correctly refuses:
gunbc servecompiles the entry closure before bind (handle_serve), soType=simplesystemd start ≠ listening. Deploy run 29868103362 measuredlive_deploy_apply_srv1_wetcompile at ~32s on srv1 ARM; prior 30s poll expired →ServiceNotReady/ curl exit 7. Fail-closed behavior is correct; fix is model bound, not refusal loosening.Bound derivation (not a magic constant):
live_deploy_srv1_arm_wet_compile_measured_s = 32(receipt: run 29868103362compile.reconcile.done t_ms≈31944)live_deploy_readiness_cold_start_headroom_factor = 3live_deploy_roadmap_unit_expected_startup = measured × factor = 96sInterim scaffold (not permanent):
live_deploy_readiness_poll_bound_interim_scaffoldbinds dissolution togunbc.roadmap_serve.roadmap_serve_interpreted_scaffold— emit-on-demand of the serve closure per gunbc-served-dashboard-design.md §3/§dissolution. This poll bound dissolves when interpreted compile-before-bind is replaced by native serve artifact.Class A context (#7011, already on main): #6940 belt-B flip introduced bare
rsync -a+ wrong ROOT principal; fixed via service-usergunbc-tree-sync.serviceinside existing sudo grant set.§5 posture
journalctl -u gunbc-roadmap.servicebefore any further changeTest plan
live_deploy_service_ready_witnesses— derived bound + interim scaffold bindlive_deploy_readiness_witnesses/live_deploy_intent_witnessesdeploy_dashboard_srv1green on next main push after merge