Timers 1.7.1: a failed LTC capture spawn retries instead of parking
When spawn() itself fails — EACCES on a helper that lost its execute bit, as the 1.10.2 catalog install did on AB on 2026-10-04 — the child emits 'error' with no 'exit' to follow. The handler reported the error but left `child` set and scheduled nothing: the 250 ms eval loop then kept reporting a misleading "No signal" over the dead child object, and the listener was parked until a remount. Null the child in the error handler and retry on the slow timer, the way spl-listener already does (which is why SPL healed itself the moment its binary was chmod +x'd, while Timers needed a remount). The error report stays visible: the eval loop does not report while there is no child. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
c9e03398a6
commit
c4383c9e62
@@ -162,7 +162,14 @@ function createLtcListener({ device, channel, moduleDir, log, onUpdate }) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
child.on('error', (err) => {
|
child.on('error', (err) => {
|
||||||
|
// A spawn that fails (EACCES on a helper that lost its execute bit,
|
||||||
|
// ENOENT) emits 'error' with no 'exit' to follow. Leaving `child` set
|
||||||
|
// would let the eval loop report "No signal" over a dead child forever
|
||||||
|
// and nothing would ever retry — what parked LTC on AB on 2026-10-04.
|
||||||
|
// Null it and retry on the slow timer, the way spl-listener does.
|
||||||
report({ error: TOOL_MISSING, detail: `LTC capture failed to start: ${err.message}` });
|
report({ error: TOOL_MISSING, detail: `LTC capture failed to start: ${err.message}` });
|
||||||
|
child = null;
|
||||||
|
scheduleRestart(BAD_CONFIG_RETRY_MS);
|
||||||
});
|
});
|
||||||
|
|
||||||
child.on('exit', (code) => {
|
child.on('exit', (code) => {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": "propresenter-timers",
|
"id": "propresenter-timers",
|
||||||
"name": "Timers",
|
"name": "Timers",
|
||||||
"version": "1.7.0",
|
"version": "1.7.1",
|
||||||
"proddash": ">=1.4.0",
|
"proddash": ">=1.4.0",
|
||||||
"description": "Timers, Clocks, and LTC From configured Modules",
|
"description": "Timers, Clocks, and LTC From configured Modules",
|
||||||
"provides": [
|
"provides": [
|
||||||
|
|||||||
Reference in New Issue
Block a user