Skip to content

fix(ansible): unblock co-located SLM Manager provisioning (#9933 #9934) - #9935

Merged
mrveiss merged 1 commit into
Dev_new_guifrom
issue-9933
Jun 11, 2026
Merged

mrveiss merged 1 commit into
Dev_new_guifrom
issue-9933

Conversation

@mrveiss

@mrveiss mrveiss commented Jun 11, 2026

Copy link
Copy Markdown
Owner

Thinking Path

After PR #9916 cleared the fresh-VM hostname/systemd bugs (#9914/#9915), I re-checked the wizard run: the native VM node1721616826 is now fully green (failed=0, ok=177), and the co-located SLM Manager got 200 tasks further but hit two deeper failures. Both are pre-existing co-location bugs in umbrella #9919 (deployment-install) and are the concrete root causes of the 4a→4c chain in #9281.

What Changed

#9933 — nginx duplicate upstream "autobot_backend" (Phase 4c)
The frontend role (Phase 4b) enables a standalone autobot-frontend site before the co-location flag is set (the flag is resolved later, in Phase 4c), so both sites-enabled/autobot-frontend:6 and sites-enabled/autobot-slm:6 declare upstream autobot_backend. include sites-enabled/* loads both → nginx -t emerg. Fix: in the Phase 4c co-location play (provision-fleet-roles.yml), remove the conflicting sites-enabled/autobot-frontend symlink when _is_slm_frontend_colocated is true — before nginx -t — and add that removal to the test/reload trigger conditions.

#9934 — backend unhealthy: FD exhaustion
autobot-backend.service.j2 had no LimitNOFILE — the only AutoBot unit missing it. The multi-worker backend (DB/Redis/ChromaDB pools + HTTP clients) hit the default fd ceiling on the busy co-located host: OSError: [Errno 24] Too many open files → socket.accept() out of system resource → the #3687 health gate never went green (120 retries / ~10 min). Fix: LimitNOFILE={{ backend_nofile_limit | default(65536) }}, matching the repo convention (slm-agent/frontend/ollama/browser/coordinator = 65535/65536).

Verification

  • python3 yaml.safe_load_all on the playbook → OK
  • ansible-playbook --syntax-check playbooks/provision-fleet-roles.yml → exit 0
  • Confirmed on the failing host that only autobot-frontend + autobot-slm declare the duplicate upstream autobot_backend (autobot-backend.conf does not)
  • Backend unit now renders LimitNOFILE=65536

Model Used

Claude Opus 4.8 (1M context)

Part of umbrella #9919. Related: #9281.
Closes #9933
Closes #9934

Two failures surfaced on the co-located SLM Manager once the fresh-VM
hostname/systemd bugs (#9914/#9915, PR #9916) were cleared. Part of
umbrella #9919 (deployment-install); concrete root causes for the
4a->4c chain tracked in #9281.

#9933 nginx `duplicate upstream "autobot_backend"`: the frontend role
(Phase 4b) enables a standalone autobot-frontend site before the
co-location flag is set, so both autobot-frontend and autobot-slm
declare the upstream and `nginx -t` fails in Phase 4c. Remove the
conflicting sites-enabled/autobot-frontend symlink in the Phase 4c
co-location play — where co-location is definitively known — before
testing the config; include that removal in the nginx test/reload
trigger conditions.

#9934 backend systemd unit had no LimitNOFILE, so the multi-worker
backend (DB/Redis/ChromaDB pools + HTTP clients) exhausted the default
fd ceiling on the busy co-located host: OSError [Errno 24] Too many
open files -> socket.accept() out of system resource -> the #3687
health gate never went green. Add LimitNOFILE (default 65536,
overridable), matching every other AutoBot unit.

Verified: ansible-playbook --syntax-check provision-fleet-roles.yml
(exit 0); confirmed only autobot-frontend + autobot-slm declare the
duplicate upstream on the failing host.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

✅ SSOT Configuration Compliance: Passing

🎉 No hardcoded values detected that have SSOT config equivalents!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant