-
-
Notifications
You must be signed in to change notification settings - Fork 80
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Summary
When the database disk is full, multiple subsystems fail simultaneously with cascading errors. There is no proactive disk space check or graceful degradation.
Sentry References
- BIRDNET-GO-SW: Alerting save_history fails (5 events)
- BIRDNET-GO-SX: FFmpeg audio export broken pipe / no space left (33 events, escalating)
- BIRDNET-GO-SZ: Save threshold event fails (4 events)
- BIRDNET-GO-T0: Save threshold event fails (1 event)
- BIRDNET-GO-T1: SQL query fails (1 event)
- BIRDNET-GO-T2: Save hourly weather fails (1 event)
- BIRDNET-GO-SY: Commit transaction fails (1 event)
All from the same category: database or disk is full (SQLite sqlite3.Error).
Error Details
[database] database or disk is full
[system-resource] failed to write PCM data to FFmpeg: No space left on device
Impact
When disk fills up, at least 7 different error types fire simultaneously, creating noise. The system continues to attempt writes that will fail.
Fix Suggestions
- Proactive monitoring: Check available disk space periodically and warn before it's critically low
- Circuit breaker: When a disk-full error is detected, temporarily pause non-critical writes (weather, alerting history) to reduce error noise
- Diskmanager integration: The diskmanager should proactively clean up old recordings before disk fills completely
- Single error reporting: Deduplicate the disk-full condition into a single high-priority alert rather than per-operation errors
- User notification: Surface a clear UI warning when disk space is critically low
Related Code
internal/datastore/— all database write operationsinternal/myaudio/— FFmpeg audio exportinternal/diskmanager/— disk space management
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request