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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.