From: Willy Tarreau Date: Wed, 25 Aug 2010 08:56:53 +0000 (+0200) Subject: [RELEASE] Released version 1.5-dev1 X-Git-Tag: v1.5-dev8~486 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fc815fddd8e5189f1bb6e2b4c6182cb15491ceac;p=thirdparty%2Fhaproxy.git [RELEASE] Released version 1.5-dev1 Released version 1.5-dev1 with the following main changes : - [BUG] stats: session rate limit gets garbaged in the stats - [DOC] mention 'option http-server-close' effect in Tq section - [DOC] summarize and highlight persistent connections behaviour - [DOC] add configuration samples - [BUG] http: dispatch and http_proxy modes were broken for a long time - [BUG] http: the transaction must be initialized even in TCP mode - [BUG] tcp: dropped connections must be counted as "denied" not "failed" - [BUG] consistent hash: balance on all servers, not only 2 ! - [CONTRIB] halog: report per-server status codes, errors and response times - [BUG] http: the transaction must be initialized even in TCP mode (part 2) - [BUG] client: always ensure to zero rep->analysers - [BUG] session: clear BF_READ_ATTACHED before next I/O - [BUG] http: automatically close response if req is aborted - [BUG] proxy: connection rate limiting was eating lots of CPU - [BUG] http: report correct flags in case of client aborts during body - [TESTS] refine non-regression tests and add 4 new tests - [BUG] debug: wrong pointer was used to report a status line - [BUG] debug: correctly report truncated messages - [DOC] document the "dispatch" keyword - [BUG] stick_table: fix possible memory leak in case of connection error - [CLEANUP] acl: use 'L6' instead of 'L4' in ACL flags relying on contents - [MINOR] accept: count the incoming connection earlier - [CLEANUP] tcp: move some non tcp-specific layer6 processing out of proto_tcp - [CLEANUP] client: move some ACLs away to their respective locations - [CLEANUP] rename client -> frontend - [MEDIUM] separate protocol-level accept() from the frontend's - [MINOR] proxy: add a list to hold future layer 4 rules - [MEDIUM] config: parse tcp layer4 rules (tcp-request accept/reject) - [MEDIUM] tcp: check for pure layer4 rules immediately after accept() - [OPTIM] frontend: tell the compiler that errors are unlikely to occur - [MEDIUM] frontend: check for LI_O_TCP_RULES in the listener - [MINOR] frontend: only check for monitor-net rules if LI_O_CHK_MONNET is set - [CLEANUP] buffer->cto is not used anymore - [MEDIUM] session: finish session establishment sequence in with I/O handlers - [MEDIUM] session: initialize server-side timeouts after connect() - [MEDIUM] backend: initialize the server stream_interface upon connect() - [MAJOR] frontend: don't initialize the server-side stream_int anymore - [MEDIUM] session: move the conn_retries attribute to the stream interface - [MEDIUM] session: don't assign conn_retries upon accept() anymore - [MINOR] frontend: rely on the frontend and not the backend for INDEPSTR - [MAJOR] frontend: reorder the session initialization upon accept - [MINOR] proxy: add an accept() callback for the application layer - [MAJOR] frontend: split accept() into frontend_accept() and session_accept() - [MEDIUM] stats: rely on the standard session_accept() function - [MINOR] buffer: refine the flags that may wake an analyser up. - [MINOR] stream_sock: don't dereference a non-existing frontend - [MINOR] session: differenciate between accepted connections and received connections - [MEDIUM] frontend: count the incoming connection earlier - [MINOR] frontend: count denied TCP requests separately - [CLEANUP] stick_table: add/clarify some comments - [BUILD] memory: add a few missing parenthesis to the pool management macros - [MINOR] stick_table: add support for variable-sized data - [CLEANUP] stick_table: rename some stksess struct members to avoid confusion - [CLEANUP] stick_table: move pattern to key functions to stick_table.c - [MEDIUM] stick_table: add room for extra data types - [MINOR] stick_table: add support for "conn_cum" data type. - [MEDIUM] stick_table: don't overwrite data when storing an entry - [MINOR] config: initialize stick tables after all the parsing - [MINOR] stick_table: provide functions to return stksess data from a type - [MEDIUM] stick_table: move the server ID to a generic data type - [MINOR] stick_table: enable it for frontends too - [MINOR] stick_table: export the stick_table_key - [MINOR] tcp: add per-source connection rate limiting - [MEDIUM] stick_table: separate storage and update of session entries - [MEDIUM] stick-tables: add a reference counter to each entry - [MINOR] session: add a pointer to the tracked counters for the source - [CLEANUP] proto_tcp: make the config parser a little bit more flexible - [BUG] config: report the correct proxy type in tcp-request errors - [MINOR] config: provide a function to quote args in a more friendly way - [BUG] stick_table: the fix for the memory leak caused a regression - [MEDIUM] backend: support servers on 0.0.0.0 - [BUG] stick-table: correctly refresh expiration timers - [MEDIUM] stream-interface: add a ->release callback - [MINOR] proxy: add a "parent" member to the structure - [MEDIUM] session: make it possible to call an I/O handler on both SI - [MINOR] tools: add a fast div64_32 function - [MINOR] freq_ctr: add new types and functions for periods different from 1s - [MINOR] errors: provide new status codes for config parsing functions - [BUG] http: denied requests must not be counted as denied resps in listeners - [MINOR] tools: add a get_std_op() function to parse operators - [MEDIUM] acl: make use of get_std_op() to parse intger ranges - [MAJOR] stream_sock: better wakeup conditions on read() - [BUG] session: analysers must be checked when SI state changes - [MINOR] http: reset analysers to listener's, not frontend's - [MEDIUM] session: support "tcp-request content" rules in backends - [BUILD] always match official tags when doing git-tar - [MAJOR] stream_interface: fix the wakeup conditions for embedded iohandlers - [MEDIUM] buffer: make buffer_feed* support writing non-contiguous chunks - [MINOR] tcp: src_count acl does not have a permanent result - [MAJOR] session: add track-counters to track counters related to the session - [MINOR] stick-table: provide a table lookup function - [MINOR] stick-table: use suffix "_cnt" for cumulated counts - [MEDIUM] session: move counter ACL fetches from proto_tcp - [MEDIUM] session: add concurrent connections counter - [MEDIUM] session: add data in and out volume counters - [MINOR] session: add the trk_conn_cnt ACL keyword to track connection counts - [MEDIUM] session-counters: automatically update tracked connection count - [MINOR] session: add the trk_conn_cur ACL keyword to track concurrent connection - [MINOR] session: add trk_kbytes_* ACL keywords to track data size - [MEDIUM] session: add a counter on the cumulated number of sessions - [MINOR] config: support a comma-separated list of store data types in stick-table - [MEDIUM] stick-tables: add support for arguments to data_types - [MEDIUM] stick-tables: add stored data argument type checking - [MEDIUM] session counters: add conn_rate and sess_rate counters - [MEDIUM] session counters: add bytes_in_rate and bytes_out_rate counters - [MINOR] stktable: add a stktable_update_key() function - [MINOR] session-counters: add a general purpose counter (gpc0) - [MEDIUM] session-counters: add HTTP req/err tracking - [MEDIUM] stats: add "show table []" to dump a stick-table - [MEDIUM] stats: add "clear table key " to clear table entries - [CLEANUP] stick-table: declare stktable_data_types as extern - [MEDIUM] stick-table: make use of generic types for stored data - [MINOR] stats: correctly report errors on "show table" and "clear table" - [MEDIUM] stats: add the ability to dump table entries matching criteria - [DOC] configuration: document all the new tracked counters - [DOC] stats: document "show table" and "clear table" - [MAJOR] session-counters: split FE and BE track counters - [MEDIUM] tcp: accept the "track-counters" in "tcp-request content" rules - [MEDIUM] session counters: automatically remove expired entries. - [MEDIUM] config: replace 'tcp-request ' with "tcp-request connection" - [MEDIUM] session-counters: make it possible to count connections from frontend - [MINOR] session-counters: use "track-sc{1,2}" instead of "track-{fe,be}-counters" - [MEDIUM] session-counters: correctly unbind the counters tracked by the backend - [CLEANUP] stats: use stksess_kill() to remove table entries - [DOC] update the references to session counters and to tcp-request connection - [DOC] cleanup: split a few long lines - [MEDIUM] http: forward client's close when abortonclose is set - [BUG] queue: don't dequeue proxy-global requests on disabled servers - [BUG] stats: global stats timeout may be specified before stats socket. - [BUG] conf: add tcp-request content rules to the correct list --- diff --git a/CHANGELOG b/CHANGELOG index 6f52393202..32dd8a0fd6 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,138 @@ ChangeLog : =========== +2010/08/25 : 1.5-dev1 + - [BUG] stats: session rate limit gets garbaged in the stats + - [DOC] mention 'option http-server-close' effect in Tq section + - [DOC] summarize and highlight persistent connections behaviour + - [DOC] add configuration samples + - [BUG] http: dispatch and http_proxy modes were broken for a long time + - [BUG] http: the transaction must be initialized even in TCP mode + - [BUG] tcp: dropped connections must be counted as "denied" not "failed" + - [BUG] consistent hash: balance on all servers, not only 2 ! + - [CONTRIB] halog: report per-server status codes, errors and response times + - [BUG] http: the transaction must be initialized even in TCP mode (part 2) + - [BUG] client: always ensure to zero rep->analysers + - [BUG] session: clear BF_READ_ATTACHED before next I/O + - [BUG] http: automatically close response if req is aborted + - [BUG] proxy: connection rate limiting was eating lots of CPU + - [BUG] http: report correct flags in case of client aborts during body + - [TESTS] refine non-regression tests and add 4 new tests + - [BUG] debug: wrong pointer was used to report a status line + - [BUG] debug: correctly report truncated messages + - [DOC] document the "dispatch" keyword + - [BUG] stick_table: fix possible memory leak in case of connection error + - [CLEANUP] acl: use 'L6' instead of 'L4' in ACL flags relying on contents + - [MINOR] accept: count the incoming connection earlier + - [CLEANUP] tcp: move some non tcp-specific layer6 processing out of proto_tcp + - [CLEANUP] client: move some ACLs away to their respective locations + - [CLEANUP] rename client -> frontend + - [MEDIUM] separate protocol-level accept() from the frontend's + - [MINOR] proxy: add a list to hold future layer 4 rules + - [MEDIUM] config: parse tcp layer4 rules (tcp-request accept/reject) + - [MEDIUM] tcp: check for pure layer4 rules immediately after accept() + - [OPTIM] frontend: tell the compiler that errors are unlikely to occur + - [MEDIUM] frontend: check for LI_O_TCP_RULES in the listener + - [MINOR] frontend: only check for monitor-net rules if LI_O_CHK_MONNET is set + - [CLEANUP] buffer->cto is not used anymore + - [MEDIUM] session: finish session establishment sequence in with I/O handlers + - [MEDIUM] session: initialize server-side timeouts after connect() + - [MEDIUM] backend: initialize the server stream_interface upon connect() + - [MAJOR] frontend: don't initialize the server-side stream_int anymore + - [MEDIUM] session: move the conn_retries attribute to the stream interface + - [MEDIUM] session: don't assign conn_retries upon accept() anymore + - [MINOR] frontend: rely on the frontend and not the backend for INDEPSTR + - [MAJOR] frontend: reorder the session initialization upon accept + - [MINOR] proxy: add an accept() callback for the application layer + - [MAJOR] frontend: split accept() into frontend_accept() and session_accept() + - [MEDIUM] stats: rely on the standard session_accept() function + - [MINOR] buffer: refine the flags that may wake an analyser up. + - [MINOR] stream_sock: don't dereference a non-existing frontend + - [MINOR] session: differenciate between accepted connections and received connections + - [MEDIUM] frontend: count the incoming connection earlier + - [MINOR] frontend: count denied TCP requests separately + - [CLEANUP] stick_table: add/clarify some comments + - [BUILD] memory: add a few missing parenthesis to the pool management macros + - [MINOR] stick_table: add support for variable-sized data + - [CLEANUP] stick_table: rename some stksess struct members to avoid confusion + - [CLEANUP] stick_table: move pattern to key functions to stick_table.c + - [MEDIUM] stick_table: add room for extra data types + - [MINOR] stick_table: add support for "conn_cum" data type. + - [MEDIUM] stick_table: don't overwrite data when storing an entry + - [MINOR] config: initialize stick tables after all the parsing + - [MINOR] stick_table: provide functions to return stksess data from a type + - [MEDIUM] stick_table: move the server ID to a generic data type + - [MINOR] stick_table: enable it for frontends too + - [MINOR] stick_table: export the stick_table_key + - [MINOR] tcp: add per-source connection rate limiting + - [MEDIUM] stick_table: separate storage and update of session entries + - [MEDIUM] stick-tables: add a reference counter to each entry + - [MINOR] session: add a pointer to the tracked counters for the source + - [CLEANUP] proto_tcp: make the config parser a little bit more flexible + - [BUG] config: report the correct proxy type in tcp-request errors + - [MINOR] config: provide a function to quote args in a more friendly way + - [BUG] stick_table: the fix for the memory leak caused a regression + - [MEDIUM] backend: support servers on 0.0.0.0 + - [BUG] stick-table: correctly refresh expiration timers + - [MEDIUM] stream-interface: add a ->release callback + - [MINOR] proxy: add a "parent" member to the structure + - [MEDIUM] session: make it possible to call an I/O handler on both SI + - [MINOR] tools: add a fast div64_32 function + - [MINOR] freq_ctr: add new types and functions for periods different from 1s + - [MINOR] errors: provide new status codes for config parsing functions + - [BUG] http: denied requests must not be counted as denied resps in listeners + - [MINOR] tools: add a get_std_op() function to parse operators + - [MEDIUM] acl: make use of get_std_op() to parse intger ranges + - [MAJOR] stream_sock: better wakeup conditions on read() + - [BUG] session: analysers must be checked when SI state changes + - [MINOR] http: reset analysers to listener's, not frontend's + - [MEDIUM] session: support "tcp-request content" rules in backends + - [BUILD] always match official tags when doing git-tar + - [MAJOR] stream_interface: fix the wakeup conditions for embedded iohandlers + - [MEDIUM] buffer: make buffer_feed* support writing non-contiguous chunks + - [MINOR] tcp: src_count acl does not have a permanent result + - [MAJOR] session: add track-counters to track counters related to the session + - [MINOR] stick-table: provide a table lookup function + - [MINOR] stick-table: use suffix "_cnt" for cumulated counts + - [MEDIUM] session: move counter ACL fetches from proto_tcp + - [MEDIUM] session: add concurrent connections counter + - [MEDIUM] session: add data in and out volume counters + - [MINOR] session: add the trk_conn_cnt ACL keyword to track connection counts + - [MEDIUM] session-counters: automatically update tracked connection count + - [MINOR] session: add the trk_conn_cur ACL keyword to track concurrent connection + - [MINOR] session: add trk_kbytes_* ACL keywords to track data size + - [MEDIUM] session: add a counter on the cumulated number of sessions + - [MINOR] config: support a comma-separated list of store data types in stick-table + - [MEDIUM] stick-tables: add support for arguments to data_types + - [MEDIUM] stick-tables: add stored data argument type checking + - [MEDIUM] session counters: add conn_rate and sess_rate counters + - [MEDIUM] session counters: add bytes_in_rate and bytes_out_rate counters + - [MINOR] stktable: add a stktable_update_key() function + - [MINOR] session-counters: add a general purpose counter (gpc0) + - [MEDIUM] session-counters: add HTTP req/err tracking + - [MEDIUM] stats: add "show table []" to dump a stick-table + - [MEDIUM] stats: add "clear table key " to clear table entries + - [CLEANUP] stick-table: declare stktable_data_types as extern + - [MEDIUM] stick-table: make use of generic types for stored data + - [MINOR] stats: correctly report errors on "show table" and "clear table" + - [MEDIUM] stats: add the ability to dump table entries matching criteria + - [DOC] configuration: document all the new tracked counters + - [DOC] stats: document "show table" and "clear table" + - [MAJOR] session-counters: split FE and BE track counters + - [MEDIUM] tcp: accept the "track-counters" in "tcp-request content" rules + - [MEDIUM] session counters: automatically remove expired entries. + - [MEDIUM] config: replace 'tcp-request ' with "tcp-request connection" + - [MEDIUM] session-counters: make it possible to count connections from frontend + - [MINOR] session-counters: use "track-sc{1,2}" instead of "track-{fe,be}-counters" + - [MEDIUM] session-counters: correctly unbind the counters tracked by the backend + - [CLEANUP] stats: use stksess_kill() to remove table entries + - [DOC] update the references to session counters and to tcp-request connection + - [DOC] cleanup: split a few long lines + - [MEDIUM] http: forward client's close when abortonclose is set + - [BUG] queue: don't dequeue proxy-global requests on disabled servers + - [BUG] stats: global stats timeout may be specified before stats socket. + - [BUG] conf: add tcp-request content rules to the correct list + 2010/05/23 : 1.5-dev0 - exact copy of 1.4.6 diff --git a/VERDATE b/VERDATE index bf310d7d05..69564865cb 100644 --- a/VERDATE +++ b/VERDATE @@ -1 +1 @@ -2010/05/20 +2010/08/20 diff --git a/VERSION b/VERSION index a34f29e2b8..c0a0f53d57 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5-dev0 +1.5-dev1 diff --git a/doc/configuration.txt b/doc/configuration.txt index cf2ae5fa32..10fb742ebc 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -4,7 +4,7 @@ ---------------------- version 1.5 willy tarreau - 2010/05/23 + 2010/08/20 This document covers the configuration language as implemented in the version diff --git a/examples/haproxy.spec b/examples/haproxy.spec index dfb623c747..80cc9fbb05 100644 --- a/examples/haproxy.spec +++ b/examples/haproxy.spec @@ -1,6 +1,6 @@ Summary: HA-Proxy is a TCP/HTTP reverse proxy for high availability environments Name: haproxy -Version: 1.5-dev0 +Version: 1.5-dev1 Release: 1 License: GPL Group: System Environment/Daemons @@ -76,6 +76,9 @@ fi %attr(0755,root,root) %config %{_sysconfdir}/rc.d/init.d/%{name} %changelog +* Wed Aug 25 2010 Willy Tarreau +- updated to 1.5-dev1 + * Sun May 23 2010 Willy Tarreau - updated to 1.5-dev0