On 11/19/18 1:07 AM, PiBa-NL wrote:
Hi List,

Hi Pieter,

Christopher is CC'ed.

As your mail is about reg-testing I took a look at it.

I'm trying (and failing?) to write a H2>HTX>H1(keepalive) test.

Using haproxy 1.9-dev6-05b9b64.

Test vtc attached, i added the 'option http-use-htx' to the fe4 frontend/backend.
Is there anything else that should be changed?
Or is my way of making the H2 request incorrect? Though the 3 tests before it 'seem' to work alright.

Below the output i get, with a unexpected '500' status, and with a IC-- on the logline... It also seems it never contacted the s4 server. Without the htx option it does make 1 request to the s4, and the second expected request tries to make a second connection. (the 'old' way..)

On my side I have the same issue but with random crashes:

$ gdb ./haproxy /tmp/vtc.*/h1/core
GNU gdb (Debian 7.12-6)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
Find the GDB manual and other documentation resources online at:
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./haproxy...done.
[New LWP 29017]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/home/flecaille/src/haproxy/haproxy -d -f /tmp/vtc.28995.4486bcf4/h1/cfg'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000556503742260 in htx_get_blk_type (blk=0x556c9a399c7c)
    at include/proto/htx.h:89
89              return (blk->info >> 28);
(gdb) bt
#0  0x0000556503742260 in htx_get_blk_type (blk=0x556c9a399c7c)
    at include/proto/htx.h:89
#1  0x000055650374234b in htx_get_tail_type (htx=0x556503c2ce10)
    at include/proto/htx.h:191
#2 0x0000556503743a31 in htx_wait_for_request (s=0x556503c26c10, req=0x556503c26c20,
    an_bit=4) at src/proto_htx.c:119
#3  0x000055650371af00 in http_wait_for_request (s=0x556503c26c10,
    req=0x556503c26c20, an_bit=4) at src/proto_http.c:880
#4 0x000055650375a50e in process_stream (t=0x556503c28c00, context=0x556503c26c10,
    state=257) at src/stream.c:1974
#5  0x00005565038612f9 in process_runnable_tasks () at src/task.c:421
#6  0x00005565037ac272 in run_poll_loop () at src/haproxy.c:2610
#7  0x00005565037ac625 in run_thread_poll_loop (data=0x556503c1f400)
    at src/haproxy.c:2675
#8 0x00005565037adce7 in main (argc=4, argv=0x7ffdc2362e58) at src/haproxy.c:3287
(gdb) p blk
$1 = (const struct htx_blk *) 0x556c9a399c7c
(gdb) p blk->info
Cannot access memory at address 0x556c9a399c80

$ ./haproxy -vv
HA-Proxy version 1.9-dev7-161196-8 2018/11/19
Copyright 2000-2018 Willy Tarreau <wi...@haproxy.org>

Build options :
  TARGET  = linux2628
  CPU     = generic
  CC      = gcc
CFLAGS = -g -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv -Wno-unused-label -Wno-sign-compare -Wno-unused-parameter -Wno-old-style-declaration -Wno-ignored-qualifiers -Wno-clobbered -Wno-missing-field-initializers -Wtype-limits -Wshift-negative-value -Wshift-overflow=2 -Wduplicated-cond -Wnull-dereference

Default settings :
  maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200

Built with OpenSSL version : OpenSSL 1.1.0f  25 May 2017
Running on OpenSSL version : OpenSSL 1.1.0f  25 May 2017
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2
Built with Lua version : Lua 5.3.3
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND
Built with zlib version : 1.2.8
Running on zlib version : 1.2.8
Compression algorithms supported : identity("identity"), deflate("deflate"), raw-deflate("deflate"), gzip("gzip")
Built with PCRE version : 8.39 2016-06-14
Running on PCRE version : 8.39 2016-06-14
PCRE library supports JIT : no (USE_PCRE_JIT not set)
Encrypted password support via crypt(3): yes
Built with multi-threading support.

Available polling systems :
      epoll : pref=300,  test result OK
       poll : pref=200,  test result OK
     select : pref=150,  test result OK
Total: 3 (3 usable), will use epoll.

Available multiplexer protocols :
(protocols markes as <default> cannot be specified using 'proto' keyword)
              h2 : mode=HTTP       side=FE
       <default> : mode=NONE       side=FE|BE
       <default> : mode=TCP|HTTP   side=FE|BE

Available filters :
        [SPOE] spoe
        [COMP] compression
        [TRACE] trace

Reply via email to