2014-08-07 1:16 GMT+02:00 Cyril Bonté <[email protected]>: > Hi Bjoern, > > Le 06/08/2014 22:16, [email protected] a écrit : > >> Hi Mark, >> >> trying to test this one, but if i use the "frontend/backend"-syntax >> (and not the "listen"-syntax) with "external-check command", HAProxy >> segfaults : >> >> >> # /usr/local/sbin/haproxy -f /etc/haproxy/haproxy.cfg -d >> Available polling systems : >> epoll : pref=300, test result OK >> poll : pref=200, test result OK >> select : pref=150, test result FAILED >> Total: 3 (2 usable), will use epoll. >> Using epoll() as the polling mechanism. >> [ALERT] 216/205611 (1316) : Starting [be_test:node01] check: no listener. >> Segmentation fault (core dumped) > > > OK, I could reproduce it. This is happening for several reasons : > 1. External checks can only be used in "listen" sections. > This is not clearly documented but it can be guessed by the arguments passed > to the command : the proxy address and port are required (see [1]). > I think this is annoying because it's only usable in some specific use > cases. Maybe we should rework this part of the implementation : I see that > for unix sockets, the port argument is set to "NOT_USED", we could do the > same for checks in a backend section. Willy, Simon, is it OK for you ? > > > 2. Because external checks are initialized late in the process (only when > the first check is started), leaving some variables uninitialized. > I'm going to send a patch which prepares the external checks early in the > process initialization and quit in a clean way when no listener is found > (meaning that we are in a backend section). But definitely, we should work > on an alternative allowing external checks in backends. > > [1] > http://cbonte.github.io/haproxy-dconv/snapshot/configuration-1.6.html#external-check%20command > > > -- > Cyril Bonté
Thanks Cyril, would be very useful if we could we have it also in "backend" sections. ---------- Bjoern

