Noticed the other day, when the RDE dies the session engine may log the
"Can't send message %u to RDE, ctl pipe closed" multiple times because
the queue is still processed.
Since this error only happens after a "SE: Lost connection to RDE" error
it does not anything to the crash log. This is why this should just be
ignored.
--
:wq Claudio
Index: session.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/session.c,v
retrieving revision 1.430
diff -u -p -r1.430 session.c
--- session.c 27 Jun 2022 13:26:51 -0000 1.430
+++ session.c 13 Jul 2022 14:48:47 -0000
@@ -3506,11 +3506,9 @@ imsg_ctl_parent(int type, uint32_t peeri
int
imsg_ctl_rde(int type, pid_t pid, void *data, uint16_t datalen)
{
- if (ibuf_rde_ctl == NULL) {
- log_warnx("Can't send message %u to RDE, ctl pipe closed",
- type);
+ if (ibuf_rde_ctl == NULL)
return (0);
- }
+
/*
* Use control socket to talk to RDE to bypass the queue of the
* regular imsg socket.
@@ -3521,10 +3519,8 @@ imsg_ctl_rde(int type, pid_t pid, void *
int
imsg_rde(int type, uint32_t peerid, void *data, uint16_t datalen)
{
- if (ibuf_rde == NULL) {
- log_warnx("Can't send message %u to RDE, pipe closed", type);
+ if (ibuf_rde == NULL)
return (0);
- }
return (imsg_compose(ibuf_rde, type, peerid, 0, -1, data, datalen));
}