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));
 }

Reply via email to