FFprobe monitor¶
The ffprobe monitor watches for stuck ffprobe processes spawned by Sonarr or Radarr and nudges them back to life. This prevents long-running media scans from hanging indefinitely.
When it runs¶
The monitor activates only when at least one Sonarr or Radarr instance is enabled. If neither service is running, the worker stays idle.
How it works¶
- Collects running Sonarr/Radarr process IDs.
- Finds descendant
ffprobeprocesses. - Detects processes stuck in an uninterruptible sleep state (
D) for longer than a configured age. - Re-runs
ffprobeon the same input file to release the stuck probe.
Configuration in dumb_config.json¶
"dumb": {
"ffprobe_monitor": {
"enabled": true,
"interval_sec": 10,
"min_process_age_sec": 30,
"min_poke_interval_sec": 60,
"poke_timeout_sec": 30,
"max_pokes_per_cycle": 3,
"cache_ttl_sec": 3600,
"ffprobe_path": "ffprobe"
}
}
Settings reference¶
| Setting | Description |
|---|---|
enabled |
Turns the monitor on or off. |
interval_sec |
Poll interval between checks. |
min_process_age_sec |
Minimum age for an ffprobe process before it is considered stuck. |
min_poke_interval_sec |
Minimum time between pokes for the same file path. |
poke_timeout_sec |
Timeout for the probe used to nudge the stuck process. |
max_pokes_per_cycle |
Maximum number of ffprobe pokes per polling cycle. |
cache_ttl_sec |
How long to cache recently poked file paths. |
ffprobe_path |
Path or command for ffprobe. |
Operational notes¶
Scope
The monitor only targets ffprobe processes spawned under Sonarr/Radarr. It does not touch other ffprobe instances on the host.
Custom ffprobe binary
If your media stack uses a bundled ffprobe, set ffprobe_path to the full binary path.
Troubleshooting¶
- If ffprobe checks never trigger, verify Sonarr/Radarr instances are enabled and visible to the DUMB process handler.
- If the monitor logs repeated timeouts, lower
max_pokes_per_cycleor increasepoke_timeout_sec.