fix: remove redundant autoconf from LCMService.start()#1515
Conversation
The blueprint system already runs configure_system via _run_configurators before deploying any modules to workers. The per-service call caused repeated prompts (once per LCMService instance across all worker processes).
Greptile SummaryThis PR fixes a regression introduced in #1503 where the
Confidence Score: 4/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant BP as Blueprint / standalone script
participant RC as _run_configurators
participant LS as LCMService.start()
participant AC as autoconf()
Note over BP,AC: Before this PR (broken)
BP->>RC: _run_configurators() — once
RC->>AC: autoconf() ✅ prompt shown once
BP->>LS: worker 1: service.start()
LS->>AC: autoconf() ❌ prompt shown again
BP->>LS: worker 2: service.start()
LS->>AC: autoconf() ❌ prompt shown again
Note over BP,AC: After this PR (fixed)
BP->>RC: _run_configurators() — once
RC->>AC: autoconf() ✅ prompt shown once
BP->>LS: worker 1: service.start()
Note right of LS: no autoconf() call
BP->>LS: worker 2: service.start()
Note right of LS: no autoconf() call
|
The blueprint system already runs configure_system via _run_configurators before deploying any modules to workers. The per-service call caused repeated "Apply these changes now?" prompts (once per LCMService instance across all worker processes). Also removes the now-dead LCMConfig.autoconf field and cleans up all callsites that passed it.
|
@greptile |
Standalone tools (rerun-bridge, dtop, lcmspy, topic echo) bypass the blueprint system and no longer get autoconf() from LCMService.start(). Add check_only=True calls so they print warnings about missing system config (multicast, sysctl buffers) without blocking on interactive prompts.
Problem
After PR #1503 (mac configurator) merged, users see repeated "Apply these changes now? [y/N]" prompts on startup — once per LCMService instance across all worker processes. The system configuration prompt loops indefinitely.
Solution
Remove the
autoconf()call fromLCMService.start(). The blueprint system already runs all system configurators via_run_configuratorsbefore deploying any modules to workers, making the per-service call redundant. Standalone scripts (e.g.drone.py) also callautoconf()explicitly before creating any services.Also removes the now-dead
LCMConfig.autoconffield and cleans up all callsites that passed it, since the field was only ever read by the deleted code path.Breaking Changes
LCMConfig.autoconffield removed. Any code passingautoconf=True/FalsetoLCMService,LCMPubSubBase,LCM,PickleLCM, etc. will get a TypeError. Fix: remove theautoconf=kwarg.How to Test
Contributor License Agreement