Hi,
after the nice failure of dev13 which worked well before being deployed
in field, here comes dev14.
The main pain was fixing health checks. Their port to use connections
was minimalist but incomplete. And each time I fixed something, something
else broke in various areas, explaining that about half of the commits
concern health checks and polling. I'm more confident in this new version
now, because there were fixes in many areas :
- Cyril and William found and fixed a compression breakage with chunked
encoded data ;
- Baptiste and Falco Schmutz helped collecting data to debug spinning
processes
- Hervé reported that an old process would not leave due to some peers
breakage (maxaccept = 0)
- Dmitry Sivachenko provided lots of information to debug a crash of
the old process upon replacement on FreeBSD, which in turn revealed
horrible things in ACL argument management
- Ben Timby reported that SMTP checks were broken with send-proxy
The good news is that we could add minor features such as the "v6only"
and "v4v6" bind options that were discussed on the list this week-end.
Some other very minor features were added mainly for debugging, such
as "show sess all" on the CLI to dump all session states, because it was
a bit frustrating to try to get relevant information during bugs.
The health-checks have experienced a major lifting. All reported and
detected issues were fixed, and the behaviour could be improved a bit
in that health-checks won't leave any more TIME_WAIT sockets on the
local machine. This was causing some trouble at places where source
ports are heavily used, because many local source ports became unusable
for any outgoing connection for 2 minutes.
The usual links follow, and I'm appending the changelog (short this time)
at the end of this e-mail.
Site index : http://haproxy.1wt.eu/
Sources : http://haproxy.1wt.eu/download/1.5/src/devel/
Changelog : http://haproxy.1wt.eu/download/1.5/src/CHANGELOG
Cyril's HTML doc :
http://cbonte.github.com/haproxy-dconv/configuration-1.5.html
Thanks to all those who contributed bug reports and fixes, and I hope
this time everyone will have a better experience.
Willy
------ Changelog from 1.5-dev13 to 1.5-dev14 :
2012/11/26 : 1.5-dev14
- DOC: fix minor typos
- BUG/MEDIUM: compression: does not forward trailers
- MINOR: buffer_dump with ASCII
- BUG/MEDIUM: checks: mark the check as stopped after a connect error
- BUG/MEDIUM: checks: ensure we completely disable polling upon success
- BUG/MINOR: checks: don't mark the FD as closed before transport close
- MEDIUM: checks: avoid accumulating TIME_WAITs during checks
- MINOR: cli: report the msg state in full text in "show sess $PTR"
- CLEANUP: checks: rename some server check flags
- MAJOR: checks: rework completely bogus state machine
- BUG/MINOR: checks: slightly clean the state machine up
- MEDIUM: checks: avoid waking the application up for pure TCP checks
- MEDIUM: checks: close the socket as soon as we have a response
- BUG/MAJOR: checks: close FD on all timeouts
- MINOR: checks: fix recv polling after connect()
- MEDIUM: connection: provide a common conn_full_close() function
- BUG/MEDIUM: checks: prevent TIME_WAITs from appearing also on timeouts
- BUG/MAJOR: peers: the listener's maxaccept was not set and caused loops
- MINOR: listeners: make the accept loop more robust when maxaccept==0
- BUG/MEDIUM: acl: correctly resolve all args, not just the first one
- BUG/MEDIUM: acl: make prue_acl_expr() correctly free ACL expressions upon
exit
- BUG/MINOR: stats: fix inversion of the report of a check in progress
- MEDIUM: tcp: add explicit support for delayed ACK in connect()
- BUG/MEDIUM: connection: always disable polling upon error
- MINOR: connection: abort earlier when errors are detected
- BUG/MEDIUM: checks: report handshake failures
- BUG/MEDIUM: connection: local_send_proxy must wait for connection to
establish
- MINOR: tcp: add support for the "v6only" bind option
- MINOR: stats: also report the computed compression savings in html stats
- MINOR: stats: report the total number of compressed responses per
front/back
- MINOR: tcp: add support for the "v4v6" bind option
- DOC: stats: document the comp_rsp stats column
- BUILD: buffer: fix another isprint() warning on solaris
- MINOR: cli: add support for the "show sess all" command
- BUG/MAJOR: cli: show sess <id> may randomly corrupt the back-ref list
- MINOR: cli: improve output format for show sess $ptr
------