Re: relayd: random abnormal termination on daemon reload
Rafael Sadowski <[email protected]>
| Newsgroups | gmane.os.openbsd.bugs |
|---|---|
| Message-ID | <[email protected]> |
On Wed Aug 12, 2026 at 04:43:00PM +0000, Lloyd wrote: > OpenBSD 7.9 GENERIC amd64 > > I have a nightly cron job to reload relayd to catch new certificates, etc. > > I see two problems. First, whatever happened here: > > Aug 11 04:24:06 webster relayd[75356]: parent_sig_handler: reload requested with SIGHUP > Aug 11 04:24:06 webster relayd[10168]: fatal in pfe: pfe_dispatch_relay: invalid relay id > Aug 11 04:24:06 webster relayd[52686]: hce exiting, pid 52686 > Aug 11 04:24:06 webster relayd[75356]: lost child: pid 10168 exited abnormally > Aug 11 04:24:06 webster relayd[56946]: ca exiting, pid 56946 > Aug 11 04:24:06 webster relayd[55168]: ca exiting, pid 55168 > Aug 11 04:24:06 webster relayd[48063]: ca exiting, pid 48063 > Aug 11 04:24:06 webster relayd[68175]: relay exiting, pid 68175 > Aug 11 04:24:06 webster relayd[8750]: relay exiting, pid 8750 > Aug 11 04:24:06 webster relayd[50458]: relay exiting, pid 50458 > Aug 11 04:24:06 webster relayd[75356]: parent terminating, pid 75356 > > Second, this returned relayd(ok) to cron via rcctl, so I was unaware the daemon > quit because on the surface it had reported success. > > This had been running successfully for weeks on end. > > This is the first time this has happened and it subsequently restarted normally. > > Regards > Lloyd > Yet another reload race issue. Thanks for the report. The problem is caused by a faulty IMSG in the IMSG dispatcher that terminates with fatalx(). This happens when processes send IMGS during a reload. That would be okay if we didn't have races. A quick fix would be to replace the fatalx with log_debug after a careful audit, and then, in a second step, fundamentally redesign the reload concept. I'll take care of the first one for the release. Rafael