Hi,
A few bugs were fixed since 1.4.18, and they impacted users so I wanted to
release something now eventhough none of them is critical. Let's check them
in sequence.
- Sagi Bashari fixed the usage of alternative header name for the
"forwardfor" option.
- An incompatibility between server tracking and slowstart, was diagnosed by
Ludovic Levesque : the weight would remain at the lowest level forever.
- Daniel Rankov reported that option nolinger did not work in backends. It
looks like it has been the case for a very long time now.
- An issue in the string indexing in ebtrees was diagnosed by Julien Thomas.
It is used in ACLs could theorically affect the ACL code though it has no
visible effect since all patterns in the same ACL are interchangeable.
- Timothy Garnett reported an issue where Ruby clients were experiencing an
extra delay in response time. After analyzing some network traces, it
appeared that Ruby likes to send POST requests in multiple incomplete
packets, waiting for the first one to be ACKed before pushing the rest,
which is incompatible with the delayed ACK. Since we get the incomplete
request, we can notice that it's missing data and re-enable quick ACKs to
make the client send the rest ASAP. Obvously the client should be fixed as
its behaviour makes it very sensible to network latency.
- Brian Lagoni reported that TProxy broke after Linux 2.6.34 kernel,
because the address family was previously assumed to be AF_INET and was
not set in HAProxy.
- last bug, I was fed up with HAProxy blocking invalid server responses
which were sent without headers. I finally understood that it was because
some requests were sent with a "\0" in the URI which HAProxy did not block,
and Apache considered the request line truncated and ignored the HTTP
version, resulting in HTTP/0.9. So the request parser was modified to
reject control characters in the URI (the standard forbids other characters
but we can't change too much in a stable version without risking breaking
some setups).
One minor feature was merged too. Mark Lamourine worked on a solution to
send a server's name in a header when connections are established to a server.
I know this can be useful in some silo-like setups and the code does not
present any risk of regression so I accepted to include it in 1.4.
So 1.4.19 was released with all these changes. If you have no problem with
current version, there is no need to upgrade.
Here's the complete changelog :
- MEDIUM: http: add support for sending the server's name in the outgoing
request
- BUG/MINOR: fix options forwardfor if-none when an alternative header name
is specified
- MINOR: task: new function task_schedule() to schedule a wake up
- BUG/MEDIUM: checks: fix slowstart behaviour when server tracking is in use
- BUG: tcp: option nolinger does not work on backends
- BUG: ebtree: ebst_lookup() could return the wrong entry
- BUG: http: re-enable TCP quick-ack upon incomplete HTTP requests
- CLEANUP: ebtree: remove a few annoying signedness warnings
- CLEANUP: ebtree: remove 4-year old harmless typo in duplicates insertion
code
- CLEANUP: ebtree: remove another typo, a wrong initialization in insertion
code
- BUG: proto_tcp: set AF_INET on tproxy for use with recent kernels
- MINOR: halog: add support for matching queued requests
- BUG: http: tighten the list of allowed characters in a URI
Sources, Linux/x86 and Solaris/sparc binaries are at the usual location :
site index : http://haproxy.1wt.eu/
sources : http://haproxy.1wt.eu/download/1.4/src/
changelog : http://haproxy.1wt.eu/download/1.4/src/CHANGELOG
binaries : http://haproxy.1wt.eu/download/1.4/bin/
Willy