I grabbed the source from the PPA and rebuilt it, installed the dbg
package, and here's one of the "bt full"s:

(gdb) bt full
#0  pattern_exec_match (head=head@entry=0x55e4dd275478,
smp=smp@entry=0x7fbf9ef650c0,
fill=fill@entry=0) at src/pattern.c:2541
        __pl_l = <optimized out>
        __pl_r = <optimized out>
        list = 0x0
        pat = <optimized out>
#1  0x000055e4db757cda in acl_exec_cond (cond=0x55e4dd2760a0,
px=0x55e4dd23a600, sess=sess@entry=0x7fbf9812a1a0, strm=strm@entry=0x0,
opt=6, opt@entry=2) at src/acl.c:1160
        suite = 0x55e4dd2760f0
        term = 0x55e4dd271c70
        expr = 0x55e4dd275470
        acl = 0x55e4dd2755b0
        smp = {flags = 0, data = {type = 4, u = {sint = 1728908554, ipv4 =
{s_addr = 1728908554}, ipv6 = {__in6_u = {__u6_addr8 = "\n\r\rg", '\000'
<repeats 11 times>, __u6_addr16 = {3338, 26381, 0, 0, 0, 0, 0, 0},
__u6_addr32 = {1728908554, 0, 0, 0}}}, str = {size = 1728908554, area =
0x0, data = 0, head = 0}, meth = {meth = 10, str = {
                  size = 0, area = 0x0, data = 0, head = 0}}}}, ctx = {p =
0x0, i = 0, ll = 0, d = 0, a = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}},
px = 0x55e4dd23a600, sess = 0x7fbf9812a1a0, strm = 0x0, opt = 6}
        acl_res = ACL_TEST_FAIL
        suite_res = ACL_TEST_PASS
        cond_res = ACL_TEST_FAIL
#2  0x000055e4db748648 in tcp_exec_l4_rules (sess=sess@entry=0x7fbf9812a1a0)
at src/tcp_rules.c:420
        rule = 0x55e4dd275f00
        ts = <optimized out>
        t = <optimized out>
        conn = <optimized out>
        result = 1
        ret = ACL_TEST_PASS
#3  0x000055e4db73ec54 in session_accept_fd (l=0x55e4dd23c660, cfd=26,
addr=<optimized out>) at src/session.c:193
        cli_conn = <optimized out>
        p = 0x55e4dd23a600
        sess = 0x7fbf9812a1a0
        ret = -1
#4  0x000055e4db729994 in accept_queue_process (t=<optimized out>,
context=0x55e4dba2c0c0 <accept_queue_rings+16384>, state=<optimized out>)
at src/listener.c:176
        ring = 0x55e4dba2c0c0 <accept_queue_rings+16384>
        li = 0x55e4dd23c660
        addr = {ss_family = 2,
          __ss_padding =
"\272\342\n\r\rg\000\000\000\000\000\000\000\000x\322S\335\344U\000\000
\226!\230\277\177\000\000`y\031\230\277\177\000\000\000\000\000\000\000\000\000\000\060S\366\236\277\177\000\000\255>\275\025\377\177\000\000@S\366\236\277\177\000\000`<\275\025\377\177\000\000\260S\366\236\277\177\000\000\001\000\000\000\002\000\000\000PS\366\236\277\177\000\000\001\000\000\000\000\000\000\000`S\366\236\277\177\000",
__ss_align = 1}
        max_accept = 64
        addr_len = 16
        ret = <optimized out>
        fd = <optimized out>
#5  0x000055e4db74b68e in process_runnable_tasks () at src/task.c:413
        t = <optimized out>
        state = <optimized out>
        ctx = <optimized out>
        process = <optimized out>
        tt = 0x55e4dbb2d540 <task_per_thread+128>
        lrq = <optimized out>
        grq = <optimized out>
        t = <optimized out>
        max_processed = 200
        tmp_list = <optimized out>
#6  0x000055e4db6f6c62 in run_poll_loop () at src/haproxy.c:2645
        next = <optimized out>
        wake = <optimized out>
        next = <optimized out>
        wake = <optimized out>
#7  run_thread_poll_loop (data=<optimized out>) at src/haproxy.c:2762
        ptaf = <optimized out>
        ptif = <optimized out>
        ptdf = <optimized out>
        ptff = <optimized out>
        init_left = 0
        init_mutex = pthread_mutex_t = {Type = Normal, Status = Not
acquired, Robust = No, Shared = No, Protocol = None}
        init_cond = pthread_cond_t = {Threads known to still execute a wait
function = 0, Clock ID = CLOCK_REALTIME, Shared = No}
#8  0x00007fbfa1c406db in start_thread (arg=0x7fbf9ef88700) at
pthread_create.c:463
        pd = 0x7fbf9ef88700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140460982568704,
6118752029739392961, 140460982424832, 0, 1, 140733557630496,
-6082936609730125887, -6082833652346708031}, mask_was_saved = 0}}, priv =
{pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype
= 0}}}
        not_first_call = <optimized out>
#9  0x00007fbfa06b488f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.



On Tue, Mar 3, 2020 at 11:25 PM Vincent Bernat <[email protected]> wrote:

>  ❦  3 mars 2020 15:34 -07, Sean Reifschneider <[email protected]>:
>
> > We've been running haproxy 1.8 series for quite a while.  We're currently
> > in the process of updating to 2.1, and have installed from the vbernat
> PPA
> > on Ubuntu 18.04 using the same old config file.
> >
> > Now we are seeing segfaults a few times a day:
>
> You can easily collect core information if you install systemd-coredump.
> Then, use "coredumpctl list" to locate the collected core, then
> "coredumpctl info XXX" to get some stack traces. If you install the
> -dbgsym package, you can also use "coredumpctl debug XXX" then use "bt
> full" and send the output.
> --
> Don't stop with your first draft.
>             - The Elements of Programming Style (Kernighan & Plauger)
>

Reply via email to