Repository navigation
fix(admins-openclaw): disable bonjour plugin to avoid Node crash - #102
Conversation
After the runtime-mirror-lock + probe-tuning fixes (PR #96, #101) opened up enough headroom for openclaw to actually run, a different crash pattern surfaced: ~5 min into uptime, plugin-install phases block the Node event loop (eventLoopUtilization=1.0, eventLoopDelayP99Ms=1260) for ~170s. During the stall, the bundled @ciao mDNS library's announcer hangs in the `announcing` state, gets restarted by openclaw's bonjour watchdog, and the cancellation throws an UnhandledPromiseRejection ("CIAO ANNOUNCEMENT CANCELLED") which crashes Node with exitCode=1. Reference log line: UnhandledPromiseRejection: ... "CIAO ANNOUNCEMENT CANCELLED". at throwUnhandledRejectionsMode (node:internal/process/promises:392:7) Bonjour does mDNS service-discovery on the local network — useless inside a k8s pod where the gateway is reached via Service DNS. Lowest- risk fix is to disable the plugin entirely via `plugins.entries.bonjour.enabled: false`. This is a workaround. Proper fix lives upstream in the openclaw fork (catch the cancellation rejection in the bonjour announcer restart path); track separately if the issue persists for tenants that genuinely need mDNS. admins-canary first per rollout policy. labs/ovk follow-up only if they're observed to hit the same crash.
|
@codex review |
|
@copilot review |
Review of ✅ No blocking issues.
One minor note on |
|
Codex Review: Didn't find any major issues. Breezy! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Pre-PR before bumping labs/ovk to 2026.5.2-mctl.1. Copilot review on the direct labs bump PR #115 surfaced that admins-specific workarounds were never applied to labs/ovk: - PR #96 lock-scrub entrypoint wrapper (top-level command/args) - PR #96 restore-state lock cleanup (find ... *.lock -exec rm) - PR #101 widened probe budgets (startup 455s, readiness 5x, liveness 5min) - PR #102/#103 bonjour disable (in JSON config) - plugin-runtime-deps S3 purge (perf + restore time) Without these, bumping labs/ovk to 2026.5.2-mctl.1 would re-introduce the lock-wedge and probe-kill failure modes that admins survived only because the workarounds were in place. Tenant-specific differences (CPU limits, OAuth callback URLs, env vars, MCP server registrations) are intentionally NOT touched — only durability/safety patches copied over with paths adapted per tenant ('labs' vs 'ovk' in S3 prefixes). Both files now +38 lines each. Closed PR #115 (labs image bump) — will re-open after this merges.
Summary
Why this is a workaround
Proper fix lives upstream (catch the cancellation rejection in the bonjour announcer restart path). This PR just turns the plugin off for admins so the crash-loop stops. labs/ovk only get the same change if observed to hit it.
Test plan