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 <ber...@luffy.cx> a écrit:
 ❦ 12 février 2019 21:44 +01, Mildis <m...@mildis.org>:

> 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"


 

Reply via email to