Repository navigation
v0.1.9 — Fix Docker Daemon Hangs
Fix: Docker Tabs Permanently Loading / Empty
What was happening
All Docker tabs (Containers, Images, Volumes, Networks, Compose) showed permanent loading spinners or empty state, even though Docker was running with active containers.
Root Causes Found (3 layers)
1. Tokio Runtime Deadlock (v0.1.8 → v0.1.9 initial fix)
All Docker CLI commands called .output() directly on the async Tokio thread. When 4+ commands fired concurrently on startup, they exhausted the thread pool → deadlock.
→ Fix: spawn_blocking() for all Docker CLI calls.
2. Frozen Docker Daemon (this fix)
The Docker daemon inside Colima's VM periodically becomes unresponsive (socket exists but hangs). Without timeouts, ALL Bollard API calls and Docker CLI commands hung forever.
→ Fix: 5-10 second timeouts on every Bollard and CLI call.
3. No Recovery on Timeout (this fix)
When fetches failed/timed out, the UI showed 'No containers' (misleading). No retry mechanism existed.
→ Fix: Auto-retry every 5 seconds with loading spinners until Docker recovers.
Files Changed
docker.rs— 10s CLI timeout + 5s Bollard timeoutvolumes.rs— 10s CLI timeoutnetworks.rs— 10s CLI timeoutcompose.rs— 10s CLI timeoutdocker_state.rs— 5s timeout on ping, update_cacheApp.tsx— Auto-retry with loading state preservation