Hi List,
I've experienced a issue where its using 100% cpu usage with haproxy
1.7.9 on FreeBSD 11.1p3 / pfSense 2.4.2dev.
There is very little traffic actually hitting this haproxy instance. But
it happened for the second time in a few days now.
Actually haproxy has been running for a few weeks with 100% and i didnt
notice.. it does keep working it seems..
Anyhow thought i would try and capture the next event if it would happen
again. It did after a few hours..
After the truss output below the last line keeps repeating fast lots and
lots of times.
kevent(0,0x0,0,{ },7,{ 1.000000000 }) = 0 (0x0)
kevent(0,0x0,0,{ },7,{ 1.000000000 }) = 0 (0x0)
kevent(0,0x0,0,{ },7,{ 1.000000000 }) = 0 (0x0)
kevent(0,0x0,0,{ 1,EVFILT_READ,EV_EOF,0x0,0x0,0x0 },7,{ 0.994000000 }) =
1 (0x1)
recvfrom(1,0x8024ed972,16290,0,NULL,0x0) = 0 (0x0)
kevent(0,{ 1,EVFILT_READ,EV_DELETE,0x0,0x0,0x0 },1,0x0,0,0x0) = 0 (0x0)
kevent(0,0x0,0,{ },7,{ 0.000000000 }) = 0 (0x0)
kevent(0,0x0,0,{ },7,{ 0.000000000 }) = 0 (0x0)
kevent(0,0x0,0,{ },7,{ 0.000000000 }) = 0 (0x0)
kevent(0,0x0,0,{ },7,{ 0.000000000 }) = 0 (0x0)
kevent(0,0x0,0,{ },7,{ 0.000000000 }) = 0 (0x0)
I tried to gather all possible relevant info in attached file. Not using
much special configuration options.. but i am using lua to server a
small simple static response.. I'm not sure if its a problem that might
be related to LUA, or perhaps there is some other issue.?.
I've got tcpdump and complete truss output from before and while it
happened after a few hours, but actually just a few request (+- 29)..
But i would prefer to send these off list though, Willy if you desire i
send em to your mail address? But maybe i have overlooked it on the
mailinglist and its a known issue already..? Last connection which i
think caused/triggered the issue is in screenshot(if it attaches right
to the mail..)basically just a GET request which gets a ack, followed by
a FYN,ACK packet from the client 30 seconds later again followed by a ack..
The LetsEncrypt backend that is part of the configuration never got a
single request according to stats..
Is it a known issue?
Are tcpdump/truss output desired ..? (where should i send em?)
Is there any other output that can try to gather next time?
Regards,
PiBa-NL
HA-Proxy version 1.7.9 2017/08/18
TARGET = freebsd
[2.4.2-DEVELOPMENT][admin@pfsense.local]/root:
/usr/local/pkg/haproxy/haproxy_socket.sh show sess all
show sess all 0x80242b800: [08/Nov/2017:19:40:18.868158] id=15
proto=tcpv4 source=45.76.a.b:53752
flags=0x48a, conn_retries=0, srv_conn=0x0, pend_pos=0x0
frontend=www (id=3 mode=http), listener=37.97.x.y:80 (id=1)
addr=37.97.x.y:80
backend=<NONE> (id=-1 mode=-)
server=<NONE> (id=-1)
task=0x80248f380 (state=0x04 nice=0 calls=4 exp=<NEVER> age=4h23m)
txn=0x802421800 flags=0x8200000 meth=1 status=-1 req.st=MSG_BODY
rsp.st=MSG_RPBEFORE waiting=0
si[0]=0x80242ba38 (state=EST flags=0x08 endp0=CONN:0x8024ca480
exp=<NEVER>, et=0x000)
si[1]=0x80242ba60 (state=EST flags=0x4010 endp1=APPCTX:0x8024ca600
exp=<NEVER>, et=0x000)
co0=0x8024ca480 ctrl=tcpv4 xprt=RAW data=STRM target=LISTENER:0x8024ca300
flags=0x0025b300 fd=1 fd.state=22 fd.cache=0 updt=0
app1=0x8024ca600 st0=0 st1=0 st2=0 applet=<lua.me_frame_lua>
req=0x80242b810 (f=0x80c020 an=0x0 pipe=0 tofwd=-1 total=94)
an_exp=<NEVER> rex=<NEVER> wex=<NEVER>
buf=0x8024ed900 data=0x8024ed914 o=94 p=94 req.next=94 i=0 size=16384
res=0x80242b850 (f=0x80400000 an=0xa00000 pipe=0 tofwd=0 total=0)
an_exp=<NEVER> rex=<NEVER> wex=<NEVER>
buf=0x783160 data=0x783174 o=0 p=0 rsp.next=0 i=0 size=0
0x80242ac00: [09/Nov/2017:00:04:24.403636] id=31 proto=unix_stream
source=unix:1
flags=0x88, conn_retries=0, srv_conn=0x0, pend_pos=0x0
frontend=GLOBAL (id=0 mode=tcp), listener=? (id=1) addr=unix:1
backend=<NONE> (id=-1 mode=-)
server=<NONE> (id=-1)
task=0x80248f4d0 (state=0x0a nice=-64 calls=1 exp=10s age=?)
si[0]=0x80242ae38 (state=EST flags=0x08 endp0=CONN:0x8024ca900
exp=<NEVER>, et=0x000)
si[1]=0x80242ae60 (state=EST flags=0x4018 endp1=APPCTX:0x8024ca780
exp=<NEVER>, et=0x000)
co0=0x8024ca900 ctrl=unix_stream xprt=RAW data=STRM
target=LISTENER:0x8024ca000
flags=0x0020b306 fd=2 fd.state=25 fd.cache=0 updt=0
app1=0x8024ca780 st0=7 st1=0 st2=3 applet=<CLI>
req=0x80242ac10 (f=0xc08200 an=0x0 pipe=0 tofwd=-1 total=15)
an_exp=<NEVER> rex=10s wex=<NEVER>
buf=0x8024e7dc0 data=0x8024e7dd4 o=0 p=0 req.next=0 i=0 size=16384
res=0x80242ac50 (f=0x80008002 an=0x0 pipe=0 tofwd=-1 total=1198)
an_exp=<NEVER> rex=<NEVER> wex=<NEVER>
buf=0x8025603c0 data=0x8025603d4 o=1198 p=1198 rsp.next=0 i=0
size=16384
FreeBSD pfsense.local 11.1-RELEASE-p3 FreeBSD 11.1-RELEASE-p3 #362
r313908+9cf44ec5484(RELENG_2_4): Fri Nov 3 08:23:14 CDT 2017
[2.4.2-DEVELOPMENT][admin@pfsense.local]/root: haproxy -vv
HA-Proxy version 1.7.9 2017/08/18
Copyright 2000-2017 Willy Tarreau <wi...@haproxy.org>
Build options :
TARGET = freebsd
CPU = generic
CC = cc
CFLAGS = -O2 -pipe -fstack-protector -fno-strict-aliasing
-fno-strict-aliasing -Wdeclaration-after-statement -fwrapv -DFREEBSD_PORTS
OPTIONS = USE_GETADDRINFO=1 USE_ZLIB=1 USE_CPU_AFFINITY=1 USE_ACCEPT4=1
USE_REGPARM=1 USE_OPENSSL=1 USE_LUA=1 USE_STATIC_PCRE=1 USE_PCRE_JIT=1
Default settings :
maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200
Encrypted password support via crypt(3): yes
Built with zlib version : 1.2.11
Running on zlib version : 1.2.11
Compression algorithms supported : identity("identity"), deflate("deflate"),
raw-deflate("deflate"), gzip("gzip")
Built with OpenSSL version : OpenSSL 1.0.2k-freebsd 26 Jan 2017
Running on OpenSSL version : OpenSSL 1.0.2k-freebsd 26 Jan 2017
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports prefer-server-ciphers : yes
Built with PCRE version : 8.40 2017-01-11
Running on PCRE version : 8.40 2017-01-11
PCRE library supports JIT : yes
Built with Lua version : Lua 5.3.4
Built with transparent proxy support using: IP_BINDANY IPV6_BINDANY
Available polling systems :
kqueue : pref=300, test result OK
poll : pref=200, test result OK
select : pref=150, test result OK
Total: 3 (3 usable), will use kqueue.
Available filters :
[SPOE] spoe
[TRACE] trace
[COMP] compression
# Automaticaly generated, dont edit manually.
# Generated on: 2017-11-08 16:21
global
maxconn 100
stats socket /tmp/haproxy.socket level admin
uid 80
gid 80
nbproc 1
chroot /tmp/haproxy_chroot
daemon
server-state-file /tmp/haproxy_server_state
lua-load /var/etc/haproxy/luascript_frame_me_nl
listen HAProxyLocalStats
bind 127.0.0.1:2200 name localstats
mode http
stats enable
stats refresh 10
stats admin if TRUE
stats uri /haproxy/haproxy_stats.php?haproxystats=1
timeout client 5000
timeout connect 5000
timeout server 5000
frontend www
bind 37.97.x.y:80 name 37.97.x.y:80
mode http
log global
option http-keep-alive
timeout client 30000
acl acme path_beg -i /.well-known/acme-challenge/
http-request use-service lua.me_frame_lua if !acme
use_backend LetsEncrypt_http_ipvANY if acme
backend LetsEncrypt_http_ipvANY
mode http
log global
timeout connect 30000
timeout server 30000
retries 3
server acme 127.0.0.1:1080
core.register_service("me_frame_lua", "http", function(applet)
local response = [[
<html><head><title>Me</title>
</head>
<frameset framespacing="0" border="0" rows="0,*" frameborder="0">
<frame name="ICredir__1" noresize>
<frame name="ICredir__2" src="http://www.me.nl" noresize>
<noframes><body><p>Op deze pagina worden frames gebruikt, maar uw browser
ondersteunt geen frames.</p></body></noframes>
</frameset></html>
]]
applet:set_status(200)
applet:add_header("content-length", string.len(response))
applet:add_header("content-type", "text/html")
applet:start_response()
applet:send(response)
end)
[2.4.2-DEVELOPMENT][admin@pfsense.local]/root:
/usr/local/pkg/haproxy/haproxy_socket.sh show stat
show stat #
pxname,svname,qcur,qmax,scur,smax,slim,stot,bin,bout,dreq,dresp,ereq,econ,eresp,wretr,wredis,status,weight,act,bck,chkfail,chkdown,lastchg,downtime,qlimit,pid,iid,sid,throttle,lbtot,tracked,type,rate,rate_lim,rate_max,check_status,check_code,check_duration,hrsp_1xx,hrsp_2xx,hrsp_3xx,hrsp_4xx,hrsp_5xx,hrsp_other,hanafail,req_rate,req_rate_max,req_tot,cli_abrt,srv_abrt,comp_in,comp_out,comp_byp,comp_rsp,lastsess,last_chk,last_agt,qtime,ctime,rtime,ttime,agent_status,agent_code,agent_duration,check_desc,agent_desc,check_rise,check_fall,check_health,agent_rise,agent_fall,agent_health,addr,cookie,mode,algo,conn_rate,conn_rate_max,conn_tot,intercepted,dcon,dses,
HAProxyLocalStats,FRONTEND,,,0,0,2000,0,0,0,0,0,0,,,,,OPEN,,,,,,,,,1,2,0,,,,0,0,0,0,,,,0,0,0,0,0,0,,0,0,0,,,0,0,0,0,,,,,,,,,,,,,,,,,,,,,http,,0,0,0,0,0,0,
HAProxyLocalStats,BACKEND,0,0,0,0,200,0,0,0,0,0,,0,0,0,0,UP,0,0,0,,0,27671,,,1,2,0,,0,,1,0,,0,,,,0,0,0,0,0,0,,,,0,0,0,0,0,0,0,-1,,,0,0,0,0,,,,,,,,,,,,,,http,roundrobin,,,,,,,
www,FRONTEND,,,1,4,2000,29,7799,12164,0,0,1,,,,,OPEN,,,,,,,,,1,3,0,,,,0,0,0,3,,,,0,27,0,1,0,0,,0,2,29,,,0,0,0,0,,,,,,,,,,,,,,,,,,,,,http,,0,3,29,28,0,0,
LetsEncrypt_http_ipvANY,acme,0,0,0,0,,0,0,0,,0,,0,0,0,0,no
check,1,1,0,,,27671,,,1,4,1,,0,,2,0,,0,,,,0,0,0,0,0,0,,,,,0,0,,,,,-1,,,0,0,0,0,,,,,,,,,,,,127.0.0.1:1080,,http,,,,,,,,
LetsEncrypt_http_ipvANY,BACKEND,0,0,0,0,200,0,0,0,0,0,,0,0,0,0,UP,1,1,0,,0,27671,0,,1,4,0,,0,,1,0,,0,,,,0,0,0,0,0,0,,,,0,0,0,0,0,0,0,-1,,,0,0,0,0,,,,,,,,,,,,,,http,roundrobin,,,,,,,
[2.4.2-DEVELOPMENT][admin@pfsense.local]/root:
/usr/local/pkg/haproxy/haproxy_socket.sh show sess
show sess 0x80242b800: proto=tcpv4 src=45.76.70.8:53752 fe=www be=<NONE>
srv=<none> ts=04 age=4h23m calls=4 rq[f=80c020h,i=0,an=00h,rx=,wx=,ax=]
rp[f=80400000h,i=0,an=a00000h,rx=,wx=,ax=] s0=[7,8h,fd=1,ex=]
s1=[7,4010h,fd=-1,ex=] exp=
0x80242ac00: proto=unix_stream src=unix:1 fe=GLOBAL be=<NONE> srv=<none> ts=0a
age=0s calls=1 rq[f=c08200h,i=0,an=00h,rx=10s,wx=,ax=]
rp[f=80008002h,i=0,an=00h,rx=,wx=,ax=] s0=[7,8h,fd=2,ex=]
s1=[7,4018h,fd=-1,ex=] exp=10s
[2.4.2-DEVELOPMENT][admin@pfsense.local]/root:
/usr/local/pkg/haproxy/haproxy_socket.sh show sess all
show sess all 0x80242b800: [08/Nov/2017:19:40:18.868158] id=15 proto=tcpv4
source=45.76.70.8:53752
flags=0x48a, conn_retries=0, srv_conn=0x0, pend_pos=0x0
frontend=www (id=3 mode=http), listener=37.97.x.y:80 (id=1) addr=37.97.x.y:80
backend=<NONE> (id=-1 mode=-)
server=<NONE> (id=-1)
task=0x80248f380 (state=0x04 nice=0 calls=4 exp=<NEVER> age=4h23m)
txn=0x802421800 flags=0x8200000 meth=1 status=-1 req.st=MSG_BODY
rsp.st=MSG_RPBEFORE waiting=0
si[0]=0x80242ba38 (state=EST flags=0x08 endp0=CONN:0x8024ca480 exp=<NEVER>,
et=0x000)
si[1]=0x80242ba60 (state=EST flags=0x4010 endp1=APPCTX:0x8024ca600
exp=<NEVER>, et=0x000)
co0=0x8024ca480 ctrl=tcpv4 xprt=RAW data=STRM target=LISTENER:0x8024ca300
flags=0x0025b300 fd=1 fd.state=22 fd.cache=0 updt=0
app1=0x8024ca600 st0=0 st1=0 st2=0 applet=<lua.me_frame_lua>
req=0x80242b810 (f=0x80c020 an=0x0 pipe=0 tofwd=-1 total=94)
an_exp=<NEVER> rex=<NEVER> wex=<NEVER>
buf=0x8024ed900 data=0x8024ed914 o=94 p=94 req.next=94 i=0 size=16384
res=0x80242b850 (f=0x80400000 an=0xa00000 pipe=0 tofwd=0 total=0)
an_exp=<NEVER> rex=<NEVER> wex=<NEVER>
buf=0x783160 data=0x783174 o=0 p=0 rsp.next=0 i=0 size=0
0x80242ac00: [09/Nov/2017:00:04:24.403636] id=31 proto=unix_stream source=unix:1
flags=0x88, conn_retries=0, srv_conn=0x0, pend_pos=0x0
frontend=GLOBAL (id=0 mode=tcp), listener=? (id=1) addr=unix:1
backend=<NONE> (id=-1 mode=-)
server=<NONE> (id=-1)
task=0x80248f4d0 (state=0x0a nice=-64 calls=1 exp=10s age=?)
si[0]=0x80242ae38 (state=EST flags=0x08 endp0=CONN:0x8024ca900 exp=<NEVER>,
et=0x000)
si[1]=0x80242ae60 (state=EST flags=0x4018 endp1=APPCTX:0x8024ca780
exp=<NEVER>, et=0x000)
co0=0x8024ca900 ctrl=unix_stream xprt=RAW data=STRM
target=LISTENER:0x8024ca000
flags=0x0020b306 fd=2 fd.state=25 fd.cache=0 updt=0
app1=0x8024ca780 st0=7 st1=0 st2=3 applet=<CLI>
req=0x80242ac10 (f=0xc08200 an=0x0 pipe=0 tofwd=-1 total=15)
an_exp=<NEVER> rex=10s wex=<NEVER>
buf=0x8024e7dc0 data=0x8024e7dd4 o=0 p=0 req.next=0 i=0 size=16384
res=0x80242ac50 (f=0x80008002 an=0x0 pipe=0 tofwd=-1 total=1198)
an_exp=<NEVER> rex=<NEVER> wex=<NEVER>
buf=0x8025603c0 data=0x8025603d4 o=1198 p=1198 rsp.next=0 i=0 size=16384
[2.4.2-DEVELOPMENT][admin@pfsense.local]/root: lsof | grep haproxy
lsof: WARNING: compiled for FreeBSD release 11.1-RELEASE-p1; this is
11.1-RELEASE-p3.
lsof: WARNING: access /root/.lsof_pfScloud: No such file or directory
lsof: WARNING: created device cache file: /root/.lsof_pfScloud
haproxy 2739 www cwd VDIR 0,79 512
2808969 /tmp/haproxy_chroot
haproxy 2739 www rtd VDIR 0,79 512
2808969 /tmp/haproxy_chroot
haproxy 2739 www jld VDIR 0,79 512
2808969 /tmp/haproxy_chroot
haproxy 2739 www txt VREG 0,79 1633536
1446049 /usr/local/sbin/haproxy
haproxy 2739 www txt VREG 0,79 139832
4494338 /libexec/ld-elf.so.1
haproxy 2739 www txt VREG 0,79 56664
2166914 /lib/libcrypt.so.5
haproxy 2739 www txt VREG 0,79 101808
2166922 /lib/libz.so.6
haproxy 2739 www txt VREG 0,79 469920
1450348 /usr/lib/libssl.so.8
haproxy 2739 www txt VREG 0,79 2528824
2166925 /lib/libcrypto.so.8
haproxy 2739 www txt VREG 0,79 246024
1446220 /usr/local/lib/liblua-5.3.so
haproxy 2739 www txt VREG 0,79 176184
2166945 /lib/libm.so.5
haproxy 2739 www txt VREG 0,79 1604240
2166946 /lib/libc.so.7
haproxy 2739 www txt VREG 0,79 115784
2166936 /lib/libthr.so.3
haproxy 2739 www 0u KQUEUE 0xfffff80003e29000
count=0, state=0
haproxy 2739 www 1u IPv4 0xfffff80025113000 0t0
TCP rtr.me.nl:http->45.76.70.8.vultr.com:53752 (CLOSED)
haproxy 2739 www 4u unix 0xfffff800162fa000 0t0
/tmp/haproxy.socket.2663.tmp
haproxy 2739 www 5u IPv4 0xfffff80025115820 0t0
TCP localhost:2200 (LISTEN)
haproxy 2739 www 6u IPv4 0xfffff800169b0410 0t0
TCP rtr.me.nl:http (LISTEN)
haproxy 2739 www 9u unix 0xfffff80003ec5000 0t0
/var/run/php-fpm.socket
haproxy 2739 www 10w VREG 0,79 0
2808996 /tmp/haproxy.lock
syslogd 77429 root txt VREG 0,79 10240
722482 /var/log/haproxy.log
syslogd 77429 root 7u unix 0xfffff800162fa360 0t0
/tmp/haproxy_chroot/var/run/log
syslogd 77429 root 14u VREG 0,79 10240
722482 /var/log/haproxy.log
[2.4.2-DEVELOPMENT][admin@pfsense.local]/root:
last pid: 80289; load averages: 1.02, 1.03, 1.00
up 5+09:04:52 01:03:53
55 processes: 2 running, 53 sleeping
CPU: 94.5% user, 0.0% nice, 5.1% system, 0.4% interrupt, 0.0% idle
Mem: 39M Active, 591M Inact, 67M Laundry, 200M Wired, 102M Buf, 56M Free
Swap: 2048M Total, 21M Used, 2027M Free, 1% Inuse
PID USERNAME THR PRI NICE SIZE RES STATE TIME WCPU COMMAND
2739 www 1 103 0 28008K 6884K RUN 150:11 99.53% haproxy