[ANNOUNCE] haproxy-1.9.10
Hi, HAProxy 1.9.10 was released on 2019/08/08. It added 30 new commits after version 1.9.9. As mentioned in the 2.0.4 announce, this release is mostly a catch-up version. It fixes two possibly important issues, one affecting the raw to htx conversion which happens when HTTP sample fetches are used from TCP rule sets in HTX proxies, and a deadlock issue under threads when dequeuing connections on a maxconn-limited server. The rest is less important and contains a significant number of H2 fixes which are mostly annoyances (including a cause for spurious RST_STREAM), and the usual set of htx and thread fixes. In short if you're using H2, threads, HTX, or are experiencing any particular issue, better upgrade. I'll try to issue the next 1.8 either before this week-end or early next week. Please find the usual URLs below : Site index : http://www.haproxy.org/ Discourse: http://discourse.haproxy.org/ Slack channel: https://slack.haproxy.org/ Issue tracker: https://github.com/haproxy/haproxy/issues Sources : http://www.haproxy.org/download/1.9/src/ Git repository : http://git.haproxy.org/git/haproxy-1.9.git/ Git Web browsing : http://git.haproxy.org/?p=haproxy-1.9.git Changelog: http://www.haproxy.org/download/1.9/src/CHANGELOG Cyril's HTML doc : http://cbonte.github.io/haproxy-dconv/ Willy --- Complete changelog : Christopher Faulet (8): BUG/MEDIUM: lb-chash: Fix the realloc() when the number of nodes is increased BUG/MINOR: hlua/htx: Reset channels analyzers when txn:done() is called BUG/MEDIUM: hlua: Check the calling direction in lua functions of the HTTP class MINOR: hlua: Don't set request analyzers on response channel for lua actions MINOR: hlua: Add a flag on the lua txn to know in which context it can be used BUG/MINOR: hlua: Only execute functions of HTTP class if the txn is HTTP ready BUG/MINOR: lua: Set right direction and flags on new HTTP objects BUG/MEDIUM: lb-chash: Ensure the tree integrity when server weight is increased Emmanuel Hocdet (2): BUG/MINOR: ssl: fix 0-RTT for BoringSSL MINOR: ssl: ssl_fc_has_early should work for BoringSSL Olivier Houchard (2): BUG/MEDIUM: streams: Don't switch the SI to SI_ST_DIS if we have data to send. BUG/MEDIUM: fd: Always reset the polled_mask bits in fd_dodelete(). Richard Russo (1): BUG/MAJOR: http/sample: use a static buffer for raw -> htx conversion Willy Tarreau (17): BUG/MEDIUM: protocols: add a global lock for the init/deinit stuff BUG/MINOR: proxy: always lock stop_proxy() BUILD: threads: add the definition of PROTO_LOCK BUG/MINOR: log: make sure writev() is not interrupted on a file output DOC: improve the wording in CONTRIBUTING about how to document a bug fix BUILD: log/threads: implement the logsrv lock BUG/MAJOR: queue/threads: avoid an AB/BA locking issue in process_srv_queue() BUG/MINOR: stream-int: also update analysers timeouts on activity BUG/MEDIUM: mux-h2: unbreak receipt of large DATA frames BUG/MEDIUM: mux-h2: split the stream's and connection's window sizes BUG/MINOR: mux-h2: don't refrain from sending an RST_STREAM after another one BUG/MINOR: mux-h2: use CANCEL, not STREAM_CLOSED in h2c_frt_handle_data() BUG/MEDIUM: mux-h2: do not recheck a frame type after a state transition BUG/MINOR: mux-h2: always send stream window update before connection's BUG/MINOR: mux-h2: always reset rcvd_s when switching to a new frame BUG/MEDIUM: checks: make sure to close nicely when we're the last to speak BUG/MINOR: buffers/threads: always clear a buffer's head before releasing it ---
Re: [cache] allow caching of OPTIONS request
On Wed, Aug 07, 2019 at 03:20:34PM +0200, Baptiste wrote: > On Wed, Aug 7, 2019 at 3:18 PM William Lallemand > wrote: > > > On Wed, Aug 07, 2019 at 12:38:05PM +0200, Baptiste wrote: > > > Hi there, > > > > > > Please find in attachement a couple of patches to allow caching responses > > > to OPTIONS requests, used in CORS pattern. > > > In modern API where CORS is applied, there may be a bunch of OPTIONS > > > requests coming in to the API servers, so caching these responses will > > > improve API response time and lower the load on the servers. > > > Given that HAProxy does not yet support the Vary header, this means this > > > feature is useful in a single case, when the server send the following > > > header "set access-control-allow-origin: *". > > > > > > William, can you check if my patches look correct, or if this is totally > > > wrong and then I'll open an issue on github for tracking this one. > > > > > > > Looks good to me, pushed in master. > > > > -- > > William Lallemand > > > > Great, thanks! > > Baptiste Don't forget to update the documentation, Thanks -- William Lallemand
haproxy=2.0.3: SIGABRT in task_run_applet
Hi! Fro 3 to 4 times per day haproxy=2.0.3 dies with a SIGABRT. Config is huge, more than 1000 backends. Backtrace follows Program terminated with signal SIGABRT, Aborted. #0 0x7febeb888428 in raise () from /lib/x86_64-linux-gnu/libc.so.6 [Current thread is 1 (Thread 0x7febe37fe700 (LWP 10343))] Thread 32 (Thread 0x7febbe7fc700 (LWP 10366)): #0 0x55fcf5abdb3d in strm_log (s=0x7feb7c068f00) at src/log.c:2916 #1 0x55fcf5a30d34 in process_stream (t=, context=0x7feb7c068f00, state=) at src/stream.c:2733 #2 0x55fcf5b076c9 in process_runnable_tasks () at src/task.c:412 #3 0x55fcf5a70c08 in run_poll_loop () at src/haproxy.c:2516 #4 run_thread_poll_loop (data=) at src/haproxy.c:2637 #5 0x7febec98a6ba in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #6 0x7febeb95a41d in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 31 (Thread 0x7febc4ff9700 (LWP 10362)): #0 0x7febeb95aa13 in epoll_wait () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x55fcf59cfd73 in _do_poll (p=, exp=, wake=0) at src/ev_epoll.c:156 #2 0x55fcf5a70bd9 in run_poll_loop () at src/haproxy.c:2553 #3 run_thread_poll_loop (data=) at src/haproxy.c:2637 #4 0x7febec98a6ba in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #5 0x7febeb95a41d in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 30 (Thread 0x7febc77fe700 (LWP 10357)): #0 0x7febeb95aa13 in epoll_wait () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x55fcf59cfd73 in _do_poll (p=, exp=, wake=0) at src/ev_epoll.c:156 #2 0x55fcf5a70bd9 in run_poll_loop () at src/haproxy.c:2553 #3 run_thread_poll_loop (data=) at src/haproxy.c:2637 #4 0x7febec98a6ba in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #5 0x7febeb95a41d in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 29 (Thread 0x7febd9ffb700 (LWP 10353)): #0 0x7febeb95aa13 in epoll_wait () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x55fcf59cfd73 in _do_poll (p=, exp=, wake=0) at src/ev_epoll.c:156 #2 0x55fcf5a70bd9 in run_poll_loop () at src/haproxy.c:2553 #3 run_thread_poll_loop (data=) at src/haproxy.c:2637 #4 0x7febec98a6ba in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #5 0x7febeb95a41d in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 28 (Thread 0x7febbcff9700 (LWP 10369)): #0 0x55fcf5b07483 in process_runnable_tasks () at src/task.c:326 #1 0x55fcf5a70c08 in run_poll_loop () at src/haproxy.c:2516 #2 run_thread_poll_loop (data=) at src/haproxy.c:2637 #3 0x7febec98a6ba in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #4 0x7febeb95a41d in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 27 (Thread 0x7febbf7fe700 (LWP 10364)): #0 0x7febeb95aa13 in epoll_wait () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x55fcf59cfd73 in _do_poll (p=, exp=, wake=0) at src/ev_epoll.c:156 #2 0x55fcf5a70bd9 in run_poll_loop () at src/haproxy.c:2553 #3 run_thread_poll_loop (data=) at src/haproxy.c:2637 #4 0x7febec98a6ba in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #5 0x7febeb95a41d in clone () from /lib/x86_64-linux-gnu/libc.so.6 ---Type to continue, or q to quit--- Thread 26 (Thread 0x7febc57fa700 (LWP 10361)): #0 0x7febeb95aa13 in epoll_wait () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x55fcf59cfd73 in _do_poll (p=, exp=, wake=0) at src/ev_epoll.c:156 #2 0x55fcf5a70bd9 in run_poll_loop () at src/haproxy.c:2553 #3 run_thread_poll_loop (data=) at src/haproxy.c:2637 #4 0x7febec98a6ba in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #5 0x7febeb95a41d in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 25 (Thread 0x7febc67fc700 (LWP 10359)): #0 0x7febeb95aa13 in epoll_wait () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x55fcf59cfd73 in _do_poll (p=, exp=, wake=0) at src/ev_epoll.c:156 #2 0x55fcf5a70bd9 in run_poll_loop () at src/haproxy.c:2553 #3 run_thread_poll_loop (data=) at src/haproxy.c:2637 #4 0x7febec98a6ba in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #5 0x7febeb95a41d in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 24 (Thread 0x7febb700 (LWP 10363)): #0 0x7febeb95aa13 in epoll_wait () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x55fcf59cfd73 in _do_poll (p=, exp=, wake=0) at src/ev_epoll.c:156 #2 0x55fcf5a70bd9 in run_poll_loop () at src/haproxy.c:2553 #3 run_thread_poll_loop (data=) at src/haproxy.c:2637 #4 0x7febec98a6ba in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #5 0x7febeb95a41d in clone () from /lib/x86_64-linux-gnu/libc.so.6 Thread 23 (Thread 0x7febbeffd700 (LWP 10365)): #0 0x55fcf5b06f4a in wake_expired_tasks () at src/task.c:215 #1 0x55fcf5a70c29 in run_poll_loop () at src/haproxy.c:2524 #2 run_thread_poll_loop (data=) at src/haproxy.c:2637 #3 0x7febec98a6ba in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #4 0x7febeb95a41d in
A Resource which you might be interested in
Hi, How are you? While looking for great resources on proxies, I came across your site: I noticed you have a lot of resources that help users on your site. Please add our resource too: https://www.vpnranks.com/. Let me know your thoughts on this. Regards, Team VPNRanks.com