-
Notifications
You must be signed in to change notification settings - Fork 219
Open
Description
Summary
In dev mode, sirius-engine can enter restart/failed-start loops when optional scanner dependencies are not present on the host mounts. This keeps the engine unhealthy and can indirectly block or delay downstream initialization.
Runtime evidence
- Engine repeatedly failed scanner startup with:
- internal/scan/pingpp_adapter.go: reading /ping++/go.mod: no such file or directory
- Container logs then showed repeated restart/shutdown cycles:
- Scanner failed to start or crashed
- Shutting down services...
- Health checks failed while scanner service was not up:
- /dev/tcp/127.0.0.1/50051 connection refused
Why this is a bug
The dev startup path assumes mounted dependency repos (notably ping++) are always present and buildable. In clean local environments, those mounts may be empty, causing scanner startup failure and unstable engine boot.
Expected behavior
Dev startup should be resilient when optional local repos are missing:
- either auto-bootstrap required repos,
- or degrade gracefully with a clear warning while core engine services continue healthy.
Suggested fix directions
- Add preflight checks for required mounted repos before scanner start.
- If missing, emit actionable warning and skip scanner build instead of crashing the engine process group.
- Document required minor-project dependencies in dev bootstrap docs/scripts.
- Consider moving scanner dependency bootstrap into deterministic container build/dev init step.
Repro (observed)
- Start dev stack without minor-projects/ping++ populated.
- Observe engine log error opening /ping++/go.mod.
- Observe restart loop and unhealthy engine state.
Reactions are currently unavailable