cockpit: fix bridge EMFILE — batch status reads into one spawn, raise fd limit

The Python cockpit-bridge frees spawn-pipe fds only at GC time; the Van
Router page's ~12 cockpit.spawn calls every 5s saw-toothed the bridge to
its 1024-fd soft limit, so the polkit admin-escalation spawn failed with
"Too many files open" whenever it landed near a peak.

Two-sided fix:
- vanrouter.js gathers all read-only status in ONE `sh -c` spawn per
  refresh, sections delimited by @@vr:<name>@@ marker lines (~12x less
  pipe churn). Mutating actions unchanged.
- cockpit-session@.service drop-in raises LimitNOFILE to 65535
  (hard limit is 524288), installed by deploy.sh.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Andreas Wrede
2026-07-06 18:32:24 -04:00
co-authored by Claude Fable 5
parent 7066207333
commit 7a92548114
3 changed files with 78 additions and 69 deletions
+5
View File
@@ -0,0 +1,5 @@
# cockpit-session@.service drop-in: the Python cockpit-bridge frees spawn-pipe
# fds only at GC time; the stock 1024 soft limit is too tight for a polling
# dashboard and EMFILEs the polkit/sudo escalation spawn. Hard limit is 524288.
[Service]
LimitNOFILE=65535