Hi Maciej,
On Tue, Nov 10, 2020 at 03:21:45PM +0100, Maciej Zdeb wrote:
> Hi,
>
> I'm very sorry that my skills in gdb and knowledge of HAProxy and C are not
> sufficient for this debugging process.
Quite frankly, you don't have to be sorry for anything :-)
I could reproduce the crash on 2.2 with your procedure, but it happened
not on our canaries but here:
Core was generated by `../haproxy-2.2/haproxy -D -f maciej/haproxy2.cfg -sf
27670'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 spoe_stop_processing (ctx=0x45def60, agent=0x12059c0) at src/flt_spoe.c:2576
2576 if (sa->frag_ctx.ctx == ctx) {
(gdb) p sa
$1 = (struct spoe_appctx *) 0x6b9e220
(gdb) p *sa
Cannot access memory at address 0x6b9e220
(gdb) bt
#0 spoe_stop_processing (ctx=0x45def60, agent=0x12059c0) at src/flt_spoe.c:2576
#1 spoe_process_messages (s=s@entry=0x2822f80, ctx=ctx@entry=0x45def60,
messages=<optimized out>, dir=dir@entry=0, type=type@entry=1) at
src/flt_spoe.c:2706
#2 0x00000000005491e3 in spoe_process_event (s=0x2822f80, ctx=0x45def60,
ev=ev@entry=SPOE_EV_ON_HTTP_REQ_FE) at src/flt_spoe.c:2780
#3 0x000000000054940a in spoe_chn_pre_analyze (s=<optimized out>,
filter=<optimized out>, chn=0x2822f90, an_bit=<optimized out>) at
src/flt_spoe.c:3249
#4 0x0000000000551bd7 in flt_pre_analyze (s=s@entry=0x2822f80,
chn=chn@entry=0x2822f90, an_bit=an_bit@entry=16) at src/filters.c:718
#5 0x00000000004f1176 in process_stream (t=<optimized out>, context=0x2822f80,
state=<optimized out>) at src/stream.c:1796
#6 0x00000000005b0533 in run_tasks_from_lists
(budgets=budgets@entry=0x7ffcc02fa2d4) at src/task.c:479
#7 0x00000000005b101a in process_runnable_tasks () at src/task.c:675
#8 0x000000000056c194 in run_poll_loop () at src/haproxy.c:2923
#9 0x000000000056c4d3 in run_thread_poll_loop (data=data@entry=0x0) at
src/haproxy.c:3088
#10 0x00000000004275a9 in main (argc=<optimized out>, argv=0x7ffcc02fa6e8) at
src/haproxy.c:3793
Seems like we're getting closer. Will continue digging now.
Many thanks Maciej for all your hard work, really!
Willy