Thanks Vincent, got a core dump.
Here is the backtrace
#0 0x00005577fb060375 in __pool_get_from_cache (pool=0x5577fb3f7540
<pool_base_start>) at include/common/memory.h:199
199 include/common/memory.h: No such file or directory.
(gdb) bt full
#0 0x00005577fb060375 in __pool_get_from_cache (pool=0x5577fb3f7540
<pool_base_start>) at include/common/memory.h:199
__ret = 0x5577fb583280
item = 0x5577fb583280
#1 __pool_get_first (pool=0x5577fb3f7540 <pool_base_start>) at
include/common/memory.h:216
cmp = <optimized out>
#2 pool_alloc_dirty (pool=0x5577fb3f7540 <pool_base_start>) at
include/common/memory.h:258
p = 0x5577fb583280
#3 pool_alloc (pool=0x5577fb3f7540 <pool_base_start>) at
include/common/memory.h:272
No locals.
#4 http_process_request (s=0x5577fb580d50, req=<optimized out>, an_bit=2048)
at src/proto_http.c:2880
sess = 0x5577fb57e7a0
txn = <optimized out>
msg = <optimized out>
#5 0x00005577fb08a726 in process_stream (t=<optimized out>,
context=0x5577fb580d50, state=<optimized out>) at src/stream.c:1984
max_loops = 199
ana_list = 2048
ana_back = 2048
flags = <optimized out>
s = 0x5577fb580d50
sess = <optimized out>
rqf_last = <optimized out>
rpf_last = 2147483648
rq_prod_last = 7
rq_cons_last = 0
rp_cons_last = 7
rp_prod_last = 0
req_ana_back = <optimized out>
req = 0x5577fb580d60
res = 0x5577fb580dc0
si_f = 0x5577fb580fe8
si_b = 0x5577fb581028
#6 0x00005577fb1558c4 in process_runnable_tasks () at src/task.c:432
t = <optimized out>
state = <optimized out>
ctx = <optimized out>
process = <optimized out>
t = <optimized out>
max_processed = <optimized out>
#7 0x00005577fb0cd551 in run_poll_loop () at src/haproxy.c:2621
next = <optimized out>
exp = <optimized out>
#8 run_thread_poll_loop (data=<optimized out>) at src/haproxy.c:2686
ptif = <optimized out>
ptdf = <optimized out>
start_lock = 0
#9 0x00005577fb0265d2 in main (argc=<optimized out>, argv=<optimized out>) at
src/haproxy.c:3315
tids = 0x5577fb475c80
threads = 0x5577fb56e180
i = <optimized out>
old_sig = {__val = {68097, 0, 0, 5, 65, 112, 1, 210453397509, 2, 0, 0,
0, 0, 0, 0, 0}}
blocked_sig = {__val = {18446744067199990583, 18446744073709551615
<repeats 15 times>}}
---Type <return> to continue, or q <return> to quit---
err = <optimized out>
retry = <optimized out>
limit = {rlim_cur = 4053, rlim_max = 4053}
errmsg =
"\000o\323Q\374\177\000\000\270n\323Q\374\177\000\000\n\000\000\000\000\000\000\000d\177\214:\305\177\000\000\020o\323Q\374\177\000\000\340\366@\373wU\000\000\360!B\373wU\000\000\306\306
;\305\177\000\000>\001\000\024\000\000\000\000\000m*U?z\020\310\n\000\000\000\000\000\000\000\020+z;\305\177\000\000\000\000\000"
pidfd = <optimized out>
Le Mardi, Février 12, 2019 23:20 CET, Vincent Bernat <[email protected]> a écrit:
❦ 12 février 2019 21:44 +01, Mildis <[email protected]>:
> I'm struggling with Stretch/systemd to generate the coredump on crash.
> Even running haproxy by hand with ulimit -c unlimited does not
> generate a coredump.
Also install haproxy-dbgsym. You need to comment the chroot directive in
your HAProxy configuration if it's enabled. Also, you need to set the
core pattern to a fixed directory where haproxy user can write to, like:
sysctl -w kernel.core_pattern=/tmp/core.%p
Then, on next segfault, you should get your coredump.
--
Let me take you a button-hole lower.
-- William Shakespeare, "Love's Labour's Lost"