fix(service): prevent recursive flock deadlock and crontab wipe; increase component RPC timeout

- initd.uc: retry_start_on_wan_up now calls BIN_PATH directly instead of
  SERVICE_INIT to avoid the rc.common flock-1000 self-deadlock that was
  hanging Backend CI for the full 1-hour runner timeout
- initd.uc: schedule_start_retry uses background_command() so inherited
  fd 1000 (procd lock) is closed before the sleep starts
- updates.uc, parental_quota.uc: read /etc/crontabs/root via fs.readfile
  instead of crontab -l — BusyBox exits 1 on an empty file causing
  command_output_from_args to return '' and wipe all user cron entries
- shell/index.ts: COMPONENT_ACTION_RPC_TIMEOUT_MS 10s -> 45s to prevent
  false RPC timeout errors during opkg installs on slow routers
This commit is contained in:
Dushnilin
2026-09-15 11:16:50 +03:00
parent aba424426b
commit 03c51d7606
5 changed files with 31 additions and 8 deletions
@@ -3157,7 +3157,7 @@ var SERVICE_ACTION_TIMEOUT_MS = 2 * 60 * 1e3;
var SERVICE_ACTION_POLL_INTERVAL_MS = 1e3;
var LATENCY_TEST_TIMEOUT_MS = 30 * 1e3;
var LATENCY_TEST_POLL_INTERVAL_MS = 1e3;
var COMPONENT_ACTION_RPC_TIMEOUT_MS = 1e4;
var COMPONENT_ACTION_RPC_TIMEOUT_MS = 45e3;
var COMPONENT_ACTION_POLL_INTERVAL_MS = 1e3;
var COMPONENT_ACTION_SELF_UPDATE_SETTLE_MS = 2e3;
var COMPONENT_ACTION_TRANSIENT_RPC_GRACE_MS = 3e4;