mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-21 19:07:46 +01:00
Add log message when discarding recording segments in cache (#3439)
* Add log message when discarding recording segments in cache Currently Frigate silently discards recording segments in cache if there's more than "keep_count" for a camera, which can happen on high load/busy/slow systems. This results in recording segments being lost with no apparent cause in the logs (even when set to debug). This PR adds a warning log entry when discarding segments, in the same way as discarding corrupted segments * Add explanatory warning and properly format cache_path warning * lint fixes Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
This commit is contained in:
parent
dfbebb63ff
commit
ed1897db71
@ -99,11 +99,17 @@ class RecordingMaintainer(threading.Thread):
|
|||||||
# delete all cached files past the most recent 5
|
# delete all cached files past the most recent 5
|
||||||
keep_count = 5
|
keep_count = 5
|
||||||
for camera in grouped_recordings.keys():
|
for camera in grouped_recordings.keys():
|
||||||
if len(grouped_recordings[camera]) > keep_count:
|
segment_count = len(grouped_recordings[camera])
|
||||||
|
if segment_count > keep_count:
|
||||||
|
logger.warning(
|
||||||
|
f"Too many recording segments in cache for {camera}. Keeping the {keep_count} most recent segments out of {segment_count}, discarding the rest..."
|
||||||
|
)
|
||||||
to_remove = grouped_recordings[camera][:-keep_count]
|
to_remove = grouped_recordings[camera][:-keep_count]
|
||||||
for f in to_remove:
|
for f in to_remove:
|
||||||
Path(f["cache_path"]).unlink(missing_ok=True)
|
cache_path = f["cache_path"]
|
||||||
self.end_time_cache.pop(f["cache_path"], None)
|
logger.warning(f"Discarding a recording segment: {cache_path}")
|
||||||
|
Path(cache_path).unlink(missing_ok=True)
|
||||||
|
self.end_time_cache.pop(cache_path, None)
|
||||||
grouped_recordings[camera] = grouped_recordings[camera][-keep_count:]
|
grouped_recordings[camera] = grouped_recordings[camera][-keep_count:]
|
||||||
|
|
||||||
for camera, recordings in grouped_recordings.items():
|
for camera, recordings in grouped_recordings.items():
|
||||||
|
Loading…
Reference in New Issue
Block a user