Brian S. Vangsgaard([email protected]) on 2015.12.04 09:04:19 +0100: > Hi Sebastian > > You commited the wrong patch. > > Please see http://marc.info/?l=openbsd-tech&m=144378086813524&w=2 > > The patch below, results in a relayd panic if more than one host is > available in the group.
i believe i committed the correct one, i just replied to the wrong mail here on the list. Here is what i put in: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.sbin/relayd/pfe.c.diff?r1=1.82&r2=1.83&sortby=date /Benno > Sebastian Benoit skrev den 2015-12-03 17:43: > >thanks, commited > > > >Brian S. Vangsgaard([email protected]) on 2015.10.01 13:27:12 +0200: > >>Hi, > >> > >>Problem: > >>If a client have a state entry in the relayd anchor, and the target > >>server goes down, the client will be unable to "failover" for 10 sec + > >>(10 sec - elapsed time since last SLA check). > >> > >>There are two issues here, this patch only fix the problem about > >>delayed > >>(10 seconds) failover. > >> > >>When the host fails the SLA check, it will be marked as being down. > >>However it will not be removed from the achor before the next SLA > >>check. > >> > >>Reproduce: > >>Start relayd with -dvvv, let it run for 10-20 seconds, then make a > >>host > >>fail its SLA check. Relayd will mark the host as being down when it > >>reach next SLA check, but the sync_table() will not be called until 10 > >>sec. later (at the next SLA check). > >> > >>Solution: > >>The logic is already in the code, but right now it only handle the > >>statistics and set the host as being down. > >> > >>Call sync_table() when a host goes from UP to DOWN. > >> > >> > >>Index: pfe.c > >>=================================================================== > >>RCS file: /cvs/src/usr.sbin/relayd/pfe.c,v > >>retrieving revision 1.79.2.1 > >>diff -u -p -u -p -r1.79.2.1 pfe.c > >>--- pfe.c 20 Sep 2015 11:20:16 -0000 1.79.2.1 > >>+++ pfe.c 1 Oct 2015 10:48:59 -0000 > >>@@ -152,6 +152,7 @@ pfe_dispatch_hce(int fd, struct privsep_ > >> table->conf.flags |= F_CHANGED; > >> host->flags |= F_DEL; > >> host->flags &= ~(F_ADD); > >>+ pfe_sync(); > >> } > >> > >> host->up = st.up; > >> > >> > >>If you need more details or want to fix the scheduler issue, please > >>contact me :) > >> > >> > >>-- > >>bsv > >> > --
