-
-
Notifications
You must be signed in to change notification settings - Fork 69
Open
Milestone
Description
When a service that supports SIGHUP is touched and reloaded, its reverse dependents are sometimes not properly unfrozen (SIGCONT).
In a chain like (the Infix OS FRR routing daemon setup):
mgmtd ← netd <pid/mgmtd> ← zebra <!pid/netd> ← {staticd,ripd} <!pid/zebra>
After initctl touch netd.conf + initctl reload:
- All conditions go FLUX (
cond_reload()bumps the generation) - zebra, staticd, ripd go PAUSED (SIGSTOP, their conditions are in flux)
- netd is SIGHUP'd (supports reload, config was touched) — same PID
pidfile_reconf()reasserts conditions for unchanged RUNNING services usingcond_set_path(), which updates the condition files but does not callcond_update()- zebra, staticd, and ripd never evaluate their now-satisfied conditions and stay PAUSED forever
Related-to: #416
Reactions are currently unavailable