Hi list, I can reproduce a segmentation fault on HAProxy 1.8.21. No problem
with 1.8.20, 1.9.10 or 2.0.5. Is there anything else I can provide or test on
my environment?
----------
haproxy.cfg:
...
frontend f
mode http
...
filter spoe engine modsecurity config /etc/haproxy/spoe-modsecurity.conf
...
backend spoe-modsecurity
mode tcp
timeout connect 5s
timeout server 5s
server modsec-spoa0 192.168.100.99:12345
...
----------
spoe-modsecurity.conf:
[modsecurity]
spoe-agent modsecurity-agent
messages check-request
option var-prefix modsec
timeout hello 11s
timeout idle 28s
timeout processing 39s
use-backend spoe-modsecurity
spoe-message check-request
args unique-id method path query req.ver req.hdrs_bin req.body_size
req.body
event on-frontend-http-request
----------
Backtrace:
Program received signal SIGSEGV, Segmentation fault.
0x000055f747657c3c in spoe_encode_message (s=s@entry=0x55f7485bf320,
ctx=ctx@entry=0x55f7485bf740, msg=msg@entry=0x55f7484ba680,
dir=dir@entry=0, buf=buf@entry=0x7ffe4fb78088,
end=end@entry=0x55f7485d7910 "") at src/flt_spoe.c:2190
2190 src/flt_spoe.c: No such file or directory.
(gdb) bt
#0 0x000055f747657c3c in spoe_encode_message (s=s@entry=0x55f7485bf320,
ctx=ctx@entry=0x55f7485bf740, msg=msg@entry=0x55f7484ba680,
dir=dir@entry=0, buf=buf@entry=0x7ffe4fb78088,
end=end@entry=0x55f7485d7910 "") at src/flt_spoe.c:2190
#1 0x000055f7476585f5 in spoe_encode_messages (type=<optimized out>, dir=0,
messages=0x55f7484ba4a0, ctx=0x55f7485bf740, s=0x55f7485bf320)
at src/flt_spoe.c:2233
#2 spoe_process_messages (s=0x55f7485bf320, ctx=0x55f7485bf740,
messages=<optimized out>, dir=dir@entry=0, type=type@entry=1)
at src/flt_spoe.c:2616
#3 0x000055f74765a145 in spoe_process_event (ev=<optimized out>,
ctx=<optimized out>, s=<optimized out>) at src/flt_spoe.c:2703
#4 spoe_chn_pre_analyze (s=<optimized out>, filter=<optimized out>,
chn=0x55f7485bf330, an_bit=<optimized out>) at src/flt_spoe.c:3129
#5 0x000055f7476c1595 in flt_pre_analyze (s=s@entry=0x55f7485bf320,
chn=chn@entry=0x55f7485bf330, an_bit=an_bit@entry=16) at src/filters.c:805
#6 0x000055f74764dfd5 in process_stream (t=t@entry=0x55f7485bf680)
at src/stream.c:1906
#7 0x000055f7476d5844 in process_runnable_tasks () at src/task.c:229
#8 0x000055f747683214 in run_poll_loop () at src/haproxy.c:2419
#9 run_thread_poll_loop (data=<optimized out>) at src/haproxy.c:2489
#10 0x000055f7475e261c in main (argc=<optimized out>, argv=<optimized out>)
at src/haproxy.c:3092