mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-25 06:02:08 +00:00
[RELEASE] Released version 1.3.16-rc1
Released version 1.3.16-rc1 with the following main changes : - appsessions: cleanup DEBUG_HASH and initialize request_counter - [MINOR] acl: add new keyword "connslots" - [MINOR] cfgparse: fix off-by 2 in error message size - [BUILD] fix build with gcc 4.3 - [BUILD] fix MANDIR default location to match documentation - [TESTS] add a debug patch to help trigger the stats bug - [BUG] Flush buffers also where there are exactly 0 bytes left - [MINOR] Allow to specify a domain for a cookie - [BUG/CLEANUP] cookiedomain -> cookie_domain rename + free(p->cookie_domain) - [MEDIUM] Fix memory freeing at exit - [MEDIUM] Fix memory freeing at exit, part 2 - [BUG] Fix listen & more of 2 couples <ip>:<port> - [DOC] remove buggy comment for use_backend - [CRITICAL] fix server state tracking: it was O(n!) instead of O(n) - [MEDIUM] add support for URI hash depth and length limits - [MINOR] permit renaming of x-forwarded-for header - [BUILD] fix Makefile.bsd and Makefile.osx for stream_interface - [BUILD] Haproxy won't compile if DEBUG_FULL is defined - [MEDIUM] upgrade to ebtree v4.0 - [DOC] update the README file with new build options - [MEDIUM] reduce risk of event starvation in ev_sepoll - [MEDIUM] detect streaming buffers and tag them as such - [MEDIUM] add support for conditional HTTP redirection - [BUILD] make install should depend on haproxy not "all" - [DEBUG] add a TRACE macro to facilitate runtime data extraction - [BUG] event pollers must not wait if a task exists in the run queue - [BUG] queue management: wake oldest request in queues - [BUG] log: reported queue position was offed-by-one - [BUG] fix the dequeuing logic to ensure that all requests get served - [DOC] documentation for the "retries" parameter was missing. - [MEDIUM] implement a monotonic internal clock - [MEDIUM] further improve monotonic clock by check forward jumps - [OPTIM] add branch prediction hints in list manipulations - [MAJOR] replace ultree with ebtree in wait-queues - [BUG] we could segfault during exit while freeing uri_auths - [BUG] wqueue: perform proper timeout comparisons with wrapping values - [MINOR] introduce now_ms, the current date in milliseconds - [BUG] disable buffer read timeout when reading stats - [MEDIUM] rework the wait queue mechanism - [BUILD] change declaration of base64tab to fix build with Intel C++ - [OPTIM] shrink wake_expired_tasks() by using task_wakeup() - [MAJOR] use an ebtree instead of a list for the run queue - [MEDIUM] introduce task->nice and boot access to statistics - [OPTIM] task_queue: assume most consecutive timers are equal - [BUILD] silent a warning in unlikely() with gcc 4.x - [MAJOR] convert all expiration timers from timeval to ticks - [BUG] use_backend would not correctly consider "unless" - [TESTS] added test-acl.cfg to test some ACL combinations - [MEDIUM] add support for configuration keyword registration - [MEDIUM] modularize the global "stats" keyword configuration parser - [MINOR] cfgparse: add support for warnings in external functions - [MEDIUM] modularize the "timeout" keyword configuration parser - [MAJOR] implement tcp request content inspection - [MINOR] acl: add a new parsing function: parse_dotted_ver - [MINOR] acl: add req_ssl_ver in TCP, to match an SSL version - [CLEANUP] remove unused include/types/client.h - [CLEANUP] remove many #include <types/xxx> from C files - [CLEANUP] remove dependency on obsolete INTBITS macro - [DOC] document the new "tcp-request" keyword and associated ACLs - [MINOR] acl: add REQ_CONTENT to the list of default acls - [MEDIUM] acl: permit fetch() functions to set the result themselves - [MEDIUM] acl: get rid of dummy values in always_true/always_false - [MINOR] acl: add the "wait_end" acl verb - [MEDIUM] acl: enforce ACL type checking - [MEDIUM] acl: set types on all currently known ACL verbs - [MEDIUM] acl: when possible, report the name and requirements of ACLs in warnings - [CLEANUP] remove 65 useless NULL checks before free - [MEDIUM] memory: update pool_free2() to support NULL pointers - [MEDIUM] buffers: ensure buffer_shut* are properly called upon shutdowns - [MEDIUM] process_srv: rely on buffer flags for client shutdown - [MEDIUM] process_srv: don't rely at all on client state - [MEDIUM] process_cli: don't rely at all on server state - [BUG] fix segfault with url_param + check_post - [BUG] server timeout was not considered in some circumstances - [BUG] client timeout incorrectly rearmed while waiting for server - [MAJOR] kill CL_STINSPECT and CL_STHEADERS (step 1) - [MAJOR] get rid of SV_STANALYZE (step 2) - [MEDIUM] simplify and centralize request timeout cancellation and request forwarding - [MAJOR] completely separate HTTP and TCP states on the request path - [BUG] fix recently introduced loop when client closes early - [MAJOR] get rid of the SV_STHEADERS state - [MAJOR] better separation of response processing and server state - [MAJOR] clearly separate HTTP response processing from TCP server state - [MEDIUM] remove unused references to {CL|SV}_STSHUT* - [MINOR] term_trace: add better instrumentations to trace the code - [BUG] ev_sepoll: closed file descriptors could persist in the spec list - [BUG] process_response must not enable the read FD - [BUG] buffers: remove BF_MAY_CONNECT and fix forwarding issue - [BUG] process_response: do not touch srv_state - [BUG] maintain_proxies must not disable backends - [CLEANUP] get rid of BF_SHUT*_PENDING - [MEDIUM] buffers: add BF_EMPTY and BF_FULL to remove dependency on req/rep->l - [MAJOR] process_session: rely only on buffer flags - [MEDIUM] use buffer->wex instead of buffer->cex for connect timeout - [MEDIUM] centralize buffer timeout checks at the top of process_session - [MINOR] ensure the termination flags are set by process_xxx - [MEDIUM] session: move the analysis bit field to the buffer - [OPTIM] process_cli/process_srv: reduce the number of tests - [BUG] regparm is broken on gcc < 3 - [BUILD] fix warning in proto_tcp.c with gcc >= 4 - [MEDIUM] merge inspect_exp and txn->exp into request buffer - [BUG] process_cli/process_srv: don't call shutdown when already done - [BUG] process_request: HTTP body analysis must return zero if missing data - [TESTS] test-fsm: 22 regression tests for state machines - [BUG] Fix empty X-Forwarded-For header name when set in defaults section - [BUG] fix harmless but wrong fd insertion sequence - [MEDIUM] make it possible for analysers to follow the whole session - [MAJOR] rework of the server FSM - [OPTIM] remove useless fd_set(read) upon shutdown(write) - [MEDIUM] massive cleanup of process_srv() - [MEDIUM] second level of code cleanup for process_srv_data - [MEDIUM] third cleanup and optimization of process_srv_data() - [MEDIUM] process_srv_data: ensure that we always correctly re-arm timeouts - [MEDIUM] stream_sock_process_data moved to stream_sock.c - [MAJOR] make the client side use stream_sock_process_data() - [MEDIUM] split stream_sock_process_data - [OPTIM] stream_sock_read must check for null-reads more often - [MINOR] only call flow analysers when their read side is connected. - [MEDIUM] reintroduce BF_HIJACK with produce_content - [MINOR] re-arrange buffer flags and rename some of them - [MINOR] do not check for BF_SHUTR when computing write timeout - [OPTIM] ev_sepoll: detect newly created FDs and check them once - [OPTIM] reduce the number of calls to task_wakeup() - [OPTIM] force inlining of large functions with gcc >= 3 - [MEDIUM] indicate a reason for a task wakeup - [MINOR] change type of fdtab[]->owner to void* - [MAJOR] make stream sockets aware of the stream interface - [MEDIUM] stream interface: add the ->shutw method as well as in and out buffers - [MEDIUM] buffers: add BF_READ_ATTACHED and BF_ANA_TIMEOUT - [MEDIUM] process_session: make use of the new buffer flags - [CLEANUP] process_session: move debug outputs out of the critical loop - [MEDIUM] move QUEUE and TAR timers to stream interfaces - [OPTIM] add compiler hints in tick_is_expired() - [MINOR] add buffer_check_timeouts() to check what timeouts have fired. - [MEDIUM] use buffer_check_timeouts instead of stream_sock_check_timeouts() - [MINOR] add an expiration flag to the stream_sock_interface - [MAJOR] migrate the connection logic to stream interface - [MAJOR] add a connection error state to the stream_interface - [MEDIUM] add the SN_CURR_SESS flag to the session to track open sessions - [MEDIUM] continue layering cleanups. - [MEDIUM] stream_interface: added a DISconnected state between CON/EST and CLO - [MEDIUM] remove stream_sock_update_data() - [MINOR] maintain a global session list in order to ease debugging - [BUG] shutw must imply close during a connect - [MEDIUM] process shutw during connection attempt - [MEDIUM] make the stream interface control the SHUT{R,W} bits - [MAJOR] complete layer4/7 separation - [CLEANUP] move the session-related functions to session.c - [MINOR] call session->do_log() for logging - [MINOR] replace the ambiguous client_return function by stream_int_return - [MINOR] replace client_retnclose() with stream_int_retnclose() - [MINOR] replace srv_close_with_err() with http_server_error() - [MEDIUM] make the http server error function a pointer in the session - [CLEANUP] session.c: removed some migration left-overs in sess_establish() - [MINOR] stream_sock_data_finish() should not expose fd - [MEDIUM] extract TCP request processing from HTTP - [MEDIUM] extract the HTTP tarpit code from process_request(). - [MEDIUM] move the HTTP request body analyser out of process_request(). - [MEDIUM] rename process_request to http_process_request - [BUG] fix forgotten server session counter - [MINOR] declare process_session in session.h, not proto_http.h - [MEDIUM] first pass of lifting to proto_uxst.c:uxst_event_accept() - [MINOR] add an analyser code for UNIX stats request - [MINOR] pre-set analyser flags on the listener at registration time - [BUG] do not forward close from cons to prod with analysers - [MEDIUM] ensure that sock->shutw() also closes read for init states - [MINOR] add an analyser state in struct session - [MAJOR] make unix sockets work again with stats - [MEDIUM] remove cli_fd, srv_fd, cli_state and srv_state from the session - [MINOR] move the listener reference from fd to session - [MEDIUM] reference the current hijack function in the buffer itself - [MINOR] slightly rebalance stats_dump_{raw,http} - [MINOR] add a new back-reference type : struct bref - [MINOR] add back-references to sessions for later use by a dumper. - [MEDIUM] add support for "show sess" in unix stats socket - [BUG] do not release the connection slot during a retry - [BUG] dynamic connection throttling could return a max of zero conns - [BUG] do not try to pause backends during reload - [BUG] ensure that listeners from disabled proxies are correctly unbound. - [BUG] acl-related keywords are not allowed in defaults sections - [BUG] cookie capture is declared in the frontend but checked on the backend - [BUG] critical errors should be reported even in daemon mode - [MINOR] redirect: add support for the "drop-query" option - [MINOR] redirect: add support for "set-cookie" and "clear-cookie" - [MINOR] redirect: in prefix mode a "/" means not to change the URI - [BUG] do not dequeue requests on a dead server - [BUG] do not dequeue the backend's pending connections on a dead server - [MINOR] stats: indicate if a task is running in "show sess" - [BUG] check timeout must not be changed if timeout.check is not set - [BUG] "option transparent" is for backend, not frontend ! - [MINOR] transfer errors were not reported anymore in data phase - [MEDIUM] add a send limit to a buffer - [MEDIUM] don't report buffer timeout when there is I/O activity - [MEDIUM] indicate when we don't care about read timeout - [MINOR] add flags to indicate when a stream interface is waiting for space/data - [MEDIUM] enable inter-stream_interface wakeup calls - [MAJOR] implement autonomous inter-socket forwarding - [MINOR] add the splice_len member to the buffer struct in preparation of splice support - [MEDIUM] stream_sock: factor out the return path in case of no-writes - [MEDIUM] i/o: rework ->to_forward and ->send_max - [OPTIM] stream_sock: do not ask for polling on EAGAIN if we have read - [OPTIM] buffer: replace rlim by max_len - [OPTIM] stream_sock: factor out the buffer full handling out of the loop - [CLEANUP] replace a few occurrences of (flags & X) && !(flags & Y) - [CLEANUP] stream_sock: move the write-nothing condition out of the loop - [MEDIUM] split stream_sock_write() into callback and core functions - [MEDIUM] stream_sock_read: call ->chk_snd whenever there are data pending - [MINOR] stream_sock: fix a few wrong empty calculations - [MEDIUM] stream_sock: try to send pending data on chk_snd() - [MINOR] global.maxpipes: add the ability to reserve file descriptors for pipes - [MEDIUM] splice: add configuration options and set global.maxpipes - [MINOR] introduce structures required to support Linux kernel splicing - [MEDIUM] add definitions for Linux kernel splicing - [MAJOR] complete support for linux 2.6 kernel splicing - [BUG] reserve some pipes for backends with splice enabled - [MEDIUM] splice: add hints to support older buggy kernels - [MEDIUM] introduce pipe pools - [MEDIUM] splice: make use of pipe pools - [STATS] report pipe usage in the statistics - [OPTIM] make global.maxpipes default to global.maxconn/4 when not specified - [BUILD] fix snapshot date extraction with negative timezones - [MEDIUM] move global tuning options to the global structure - [MEDIUM] splice: add the global "nosplice" option - [BUILD] add USE_LINUX_SPLICE to enable LINUX_SPLICE on linux 2.6 - [BUG] we must not exit if protocol binding only returns a warning - [MINOR] add support for bind interface name - [BUG] inform the user when root is expected but not set - [MEDIUM] add support for source interface binding - [MEDIUM] add support for source interface binding at the server level - [MEDIUM] implement bind-process to limit service presence by process - [DOC] document maxpipes, nosplice, option splice-{auto,request,response} - [DOC] filled the logging section of the configuration manual - [DOC] document HTTP status codes - [DOC] document a few missing info about errorfile - [BUG] fix random memory corruption using "show sess" - [BUG] fix unix socket processing of interrupted output - [DOC] add diagrams of queuing and future ACL design - [BUILD] proto_http did not build on gcc-2.95 - [BUG] the "source" keyword must first clear optional settings - [BUG] global.tune.maxaccept must be limited even in mono-process mode - [MINOR] ensure that http_msg_analyzer updates pointer to invalid char - [MEDIUM] store a complete dump of request and response errors in proxies - [MEDIUM] implement error dump on unix socket with "show errors" - [DOC] document "show errors" - [MINOR] errors dump must use user-visible date, not internal date. - [MINOR] time: add __usec_to_1024th to convert usecs to 1024th of second - [MINOR] add curr_sec_ms and curr_sec_ms_scaled for current second. - [MEDIUM] measure and report session rate on frontend, backends and servers - [BUG] the "connslots" keyword was matched as "connlots" - [MINOR] acl: add 2 new verbs: fe_sess_rate and be_sess_rate - [MEDIUM] implement "rate-limit sessions" for the frontend - [BUG] interface binding: length must include the trailing zero - [BUG] typo in timeout error reporting : report *res and not *err - [OPTIM] maintain_proxies: only wake up when the frontend will be ready - [OPTIM] rate-limit: cleaner behaviour on low rates and reduce consumption - [BUG] switch server-side stream interface to close in case of abort - [CLEANUP] remove last references to term_trace - [OPTIM] freq_ctr: do not rotate the counters when reading - [BUG] disable any analysers for monitoring requests - [BUG] rate-limit in defaults section was ignored - [BUG] task: fix handling of duplicate keys - [OPTIM] task: don't unlink a task from a wait queue when waking it up - [OPTIM] displace tasks in the wait queue only if absolutely needed - [MEDIUM] minor update to the task api: let the scheduler queue itself - [BUG] event_accept() must always wake the task up, even in health mode - [CLEANUP] task: distinguish between clock ticks and timers - [OPTIM] task: reduce the number of calls to task_queue() - [OPTIM] do not re-check req buffer when only response has changed - [CLEANUP] don't enable kernel splicing when socket is closed - [CLEANUP] buffer_flush() was misleading, rename it as buffer_erase - [MINOR] buffers: implement buffer_flush() - [MEDIUM] rearrange forwarding condition to enable splice during analysis - [BUILD] build fixes for Solaris - [BUILD] proto_http did not build on gcc-2.95 (again) - [CONTRIB] halog: fast log parser for haproxy - [CONTRIB] halog: faster fgets() and add support for percentile reporting
This commit is contained in:
parent
214c203c00
commit
ff63b439e0
278
CHANGELOG
278
CHANGELOG
@ -1,6 +1,284 @@
|
||||
ChangeLog :
|
||||
===========
|
||||
|
||||
2009/03/09 : 1.3.16-rc1
|
||||
- appsessions: cleanup DEBUG_HASH and initialize request_counter
|
||||
- [MINOR] acl: add new keyword "connslots"
|
||||
- [MINOR] cfgparse: fix off-by 2 in error message size
|
||||
- [BUILD] fix build with gcc 4.3
|
||||
- [BUILD] fix MANDIR default location to match documentation
|
||||
- [TESTS] add a debug patch to help trigger the stats bug
|
||||
- [BUG] Flush buffers also where there are exactly 0 bytes left
|
||||
- [MINOR] Allow to specify a domain for a cookie
|
||||
- [BUG/CLEANUP] cookiedomain -> cookie_domain rename + free(p->cookie_domain)
|
||||
- [MEDIUM] Fix memory freeing at exit
|
||||
- [MEDIUM] Fix memory freeing at exit, part 2
|
||||
- [BUG] Fix listen & more of 2 couples <ip>:<port>
|
||||
- [DOC] remove buggy comment for use_backend
|
||||
- [CRITICAL] fix server state tracking: it was O(n!) instead of O(n)
|
||||
- [MEDIUM] add support for URI hash depth and length limits
|
||||
- [MINOR] permit renaming of x-forwarded-for header
|
||||
- [BUILD] fix Makefile.bsd and Makefile.osx for stream_interface
|
||||
- [BUILD] Haproxy won't compile if DEBUG_FULL is defined
|
||||
- [MEDIUM] upgrade to ebtree v4.0
|
||||
- [DOC] update the README file with new build options
|
||||
- [MEDIUM] reduce risk of event starvation in ev_sepoll
|
||||
- [MEDIUM] detect streaming buffers and tag them as such
|
||||
- [MEDIUM] add support for conditional HTTP redirection
|
||||
- [BUILD] make install should depend on haproxy not "all"
|
||||
- [DEBUG] add a TRACE macro to facilitate runtime data extraction
|
||||
- [BUG] event pollers must not wait if a task exists in the run queue
|
||||
- [BUG] queue management: wake oldest request in queues
|
||||
- [BUG] log: reported queue position was offed-by-one
|
||||
- [BUG] fix the dequeuing logic to ensure that all requests get served
|
||||
- [DOC] documentation for the "retries" parameter was missing.
|
||||
- [MEDIUM] implement a monotonic internal clock
|
||||
- [MEDIUM] further improve monotonic clock by check forward jumps
|
||||
- [OPTIM] add branch prediction hints in list manipulations
|
||||
- [MAJOR] replace ultree with ebtree in wait-queues
|
||||
- [BUG] we could segfault during exit while freeing uri_auths
|
||||
- [BUG] wqueue: perform proper timeout comparisons with wrapping values
|
||||
- [MINOR] introduce now_ms, the current date in milliseconds
|
||||
- [BUG] disable buffer read timeout when reading stats
|
||||
- [MEDIUM] rework the wait queue mechanism
|
||||
- [BUILD] change declaration of base64tab to fix build with Intel C++
|
||||
- [OPTIM] shrink wake_expired_tasks() by using task_wakeup()
|
||||
- [MAJOR] use an ebtree instead of a list for the run queue
|
||||
- [MEDIUM] introduce task->nice and boot access to statistics
|
||||
- [OPTIM] task_queue: assume most consecutive timers are equal
|
||||
- [BUILD] silent a warning in unlikely() with gcc 4.x
|
||||
- [MAJOR] convert all expiration timers from timeval to ticks
|
||||
- [BUG] use_backend would not correctly consider "unless"
|
||||
- [TESTS] added test-acl.cfg to test some ACL combinations
|
||||
- [MEDIUM] add support for configuration keyword registration
|
||||
- [MEDIUM] modularize the global "stats" keyword configuration parser
|
||||
- [MINOR] cfgparse: add support for warnings in external functions
|
||||
- [MEDIUM] modularize the "timeout" keyword configuration parser
|
||||
- [MAJOR] implement tcp request content inspection
|
||||
- [MINOR] acl: add a new parsing function: parse_dotted_ver
|
||||
- [MINOR] acl: add req_ssl_ver in TCP, to match an SSL version
|
||||
- [CLEANUP] remove unused include/types/client.h
|
||||
- [CLEANUP] remove many #include <types/xxx> from C files
|
||||
- [CLEANUP] remove dependency on obsolete INTBITS macro
|
||||
- [DOC] document the new "tcp-request" keyword and associated ACLs
|
||||
- [MINOR] acl: add REQ_CONTENT to the list of default acls
|
||||
- [MEDIUM] acl: permit fetch() functions to set the result themselves
|
||||
- [MEDIUM] acl: get rid of dummy values in always_true/always_false
|
||||
- [MINOR] acl: add the "wait_end" acl verb
|
||||
- [MEDIUM] acl: enforce ACL type checking
|
||||
- [MEDIUM] acl: set types on all currently known ACL verbs
|
||||
- [MEDIUM] acl: when possible, report the name and requirements of ACLs in warnings
|
||||
- [CLEANUP] remove 65 useless NULL checks before free
|
||||
- [MEDIUM] memory: update pool_free2() to support NULL pointers
|
||||
- [MEDIUM] buffers: ensure buffer_shut* are properly called upon shutdowns
|
||||
- [MEDIUM] process_srv: rely on buffer flags for client shutdown
|
||||
- [MEDIUM] process_srv: don't rely at all on client state
|
||||
- [MEDIUM] process_cli: don't rely at all on server state
|
||||
- [BUG] fix segfault with url_param + check_post
|
||||
- [BUG] server timeout was not considered in some circumstances
|
||||
- [BUG] client timeout incorrectly rearmed while waiting for server
|
||||
- [MAJOR] kill CL_STINSPECT and CL_STHEADERS (step 1)
|
||||
- [MAJOR] get rid of SV_STANALYZE (step 2)
|
||||
- [MEDIUM] simplify and centralize request timeout cancellation and request forwarding
|
||||
- [MAJOR] completely separate HTTP and TCP states on the request path
|
||||
- [BUG] fix recently introduced loop when client closes early
|
||||
- [MAJOR] get rid of the SV_STHEADERS state
|
||||
- [MAJOR] better separation of response processing and server state
|
||||
- [MAJOR] clearly separate HTTP response processing from TCP server state
|
||||
- [MEDIUM] remove unused references to {CL|SV}_STSHUT*
|
||||
- [MINOR] term_trace: add better instrumentations to trace the code
|
||||
- [BUG] ev_sepoll: closed file descriptors could persist in the spec list
|
||||
- [BUG] process_response must not enable the read FD
|
||||
- [BUG] buffers: remove BF_MAY_CONNECT and fix forwarding issue
|
||||
- [BUG] process_response: do not touch srv_state
|
||||
- [BUG] maintain_proxies must not disable backends
|
||||
- [CLEANUP] get rid of BF_SHUT*_PENDING
|
||||
- [MEDIUM] buffers: add BF_EMPTY and BF_FULL to remove dependency on req/rep->l
|
||||
- [MAJOR] process_session: rely only on buffer flags
|
||||
- [MEDIUM] use buffer->wex instead of buffer->cex for connect timeout
|
||||
- [MEDIUM] centralize buffer timeout checks at the top of process_session
|
||||
- [MINOR] ensure the termination flags are set by process_xxx
|
||||
- [MEDIUM] session: move the analysis bit field to the buffer
|
||||
- [OPTIM] process_cli/process_srv: reduce the number of tests
|
||||
- [BUG] regparm is broken on gcc < 3
|
||||
- [BUILD] fix warning in proto_tcp.c with gcc >= 4
|
||||
- [MEDIUM] merge inspect_exp and txn->exp into request buffer
|
||||
- [BUG] process_cli/process_srv: don't call shutdown when already done
|
||||
- [BUG] process_request: HTTP body analysis must return zero if missing data
|
||||
- [TESTS] test-fsm: 22 regression tests for state machines
|
||||
- [BUG] Fix empty X-Forwarded-For header name when set in defaults section
|
||||
- [BUG] fix harmless but wrong fd insertion sequence
|
||||
- [MEDIUM] make it possible for analysers to follow the whole session
|
||||
- [MAJOR] rework of the server FSM
|
||||
- [OPTIM] remove useless fd_set(read) upon shutdown(write)
|
||||
- [MEDIUM] massive cleanup of process_srv()
|
||||
- [MEDIUM] second level of code cleanup for process_srv_data
|
||||
- [MEDIUM] third cleanup and optimization of process_srv_data()
|
||||
- [MEDIUM] process_srv_data: ensure that we always correctly re-arm timeouts
|
||||
- [MEDIUM] stream_sock_process_data moved to stream_sock.c
|
||||
- [MAJOR] make the client side use stream_sock_process_data()
|
||||
- [MEDIUM] split stream_sock_process_data
|
||||
- [OPTIM] stream_sock_read must check for null-reads more often
|
||||
- [MINOR] only call flow analysers when their read side is connected.
|
||||
- [MEDIUM] reintroduce BF_HIJACK with produce_content
|
||||
- [MINOR] re-arrange buffer flags and rename some of them
|
||||
- [MINOR] do not check for BF_SHUTR when computing write timeout
|
||||
- [OPTIM] ev_sepoll: detect newly created FDs and check them once
|
||||
- [OPTIM] reduce the number of calls to task_wakeup()
|
||||
- [OPTIM] force inlining of large functions with gcc >= 3
|
||||
- [MEDIUM] indicate a reason for a task wakeup
|
||||
- [MINOR] change type of fdtab[]->owner to void*
|
||||
- [MAJOR] make stream sockets aware of the stream interface
|
||||
- [MEDIUM] stream interface: add the ->shutw method as well as in and out buffers
|
||||
- [MEDIUM] buffers: add BF_READ_ATTACHED and BF_ANA_TIMEOUT
|
||||
- [MEDIUM] process_session: make use of the new buffer flags
|
||||
- [CLEANUP] process_session: move debug outputs out of the critical loop
|
||||
- [MEDIUM] move QUEUE and TAR timers to stream interfaces
|
||||
- [OPTIM] add compiler hints in tick_is_expired()
|
||||
- [MINOR] add buffer_check_timeouts() to check what timeouts have fired.
|
||||
- [MEDIUM] use buffer_check_timeouts instead of stream_sock_check_timeouts()
|
||||
- [MINOR] add an expiration flag to the stream_sock_interface
|
||||
- [MAJOR] migrate the connection logic to stream interface
|
||||
- [MAJOR] add a connection error state to the stream_interface
|
||||
- [MEDIUM] add the SN_CURR_SESS flag to the session to track open sessions
|
||||
- [MEDIUM] continue layering cleanups.
|
||||
- [MEDIUM] stream_interface: added a DISconnected state between CON/EST and CLO
|
||||
- [MEDIUM] remove stream_sock_update_data()
|
||||
- [MINOR] maintain a global session list in order to ease debugging
|
||||
- [BUG] shutw must imply close during a connect
|
||||
- [MEDIUM] process shutw during connection attempt
|
||||
- [MEDIUM] make the stream interface control the SHUT{R,W} bits
|
||||
- [MAJOR] complete layer4/7 separation
|
||||
- [CLEANUP] move the session-related functions to session.c
|
||||
- [MINOR] call session->do_log() for logging
|
||||
- [MINOR] replace the ambiguous client_return function by stream_int_return
|
||||
- [MINOR] replace client_retnclose() with stream_int_retnclose()
|
||||
- [MINOR] replace srv_close_with_err() with http_server_error()
|
||||
- [MEDIUM] make the http server error function a pointer in the session
|
||||
- [CLEANUP] session.c: removed some migration left-overs in sess_establish()
|
||||
- [MINOR] stream_sock_data_finish() should not expose fd
|
||||
- [MEDIUM] extract TCP request processing from HTTP
|
||||
- [MEDIUM] extract the HTTP tarpit code from process_request().
|
||||
- [MEDIUM] move the HTTP request body analyser out of process_request().
|
||||
- [MEDIUM] rename process_request to http_process_request
|
||||
- [BUG] fix forgotten server session counter
|
||||
- [MINOR] declare process_session in session.h, not proto_http.h
|
||||
- [MEDIUM] first pass of lifting to proto_uxst.c:uxst_event_accept()
|
||||
- [MINOR] add an analyser code for UNIX stats request
|
||||
- [MINOR] pre-set analyser flags on the listener at registration time
|
||||
- [BUG] do not forward close from cons to prod with analysers
|
||||
- [MEDIUM] ensure that sock->shutw() also closes read for init states
|
||||
- [MINOR] add an analyser state in struct session
|
||||
- [MAJOR] make unix sockets work again with stats
|
||||
- [MEDIUM] remove cli_fd, srv_fd, cli_state and srv_state from the session
|
||||
- [MINOR] move the listener reference from fd to session
|
||||
- [MEDIUM] reference the current hijack function in the buffer itself
|
||||
- [MINOR] slightly rebalance stats_dump_{raw,http}
|
||||
- [MINOR] add a new back-reference type : struct bref
|
||||
- [MINOR] add back-references to sessions for later use by a dumper.
|
||||
- [MEDIUM] add support for "show sess" in unix stats socket
|
||||
- [BUG] do not release the connection slot during a retry
|
||||
- [BUG] dynamic connection throttling could return a max of zero conns
|
||||
- [BUG] do not try to pause backends during reload
|
||||
- [BUG] ensure that listeners from disabled proxies are correctly unbound.
|
||||
- [BUG] acl-related keywords are not allowed in defaults sections
|
||||
- [BUG] cookie capture is declared in the frontend but checked on the backend
|
||||
- [BUG] critical errors should be reported even in daemon mode
|
||||
- [MINOR] redirect: add support for the "drop-query" option
|
||||
- [MINOR] redirect: add support for "set-cookie" and "clear-cookie"
|
||||
- [MINOR] redirect: in prefix mode a "/" means not to change the URI
|
||||
- [BUG] do not dequeue requests on a dead server
|
||||
- [BUG] do not dequeue the backend's pending connections on a dead server
|
||||
- [MINOR] stats: indicate if a task is running in "show sess"
|
||||
- [BUG] check timeout must not be changed if timeout.check is not set
|
||||
- [BUG] "option transparent" is for backend, not frontend !
|
||||
- [MINOR] transfer errors were not reported anymore in data phase
|
||||
- [MEDIUM] add a send limit to a buffer
|
||||
- [MEDIUM] don't report buffer timeout when there is I/O activity
|
||||
- [MEDIUM] indicate when we don't care about read timeout
|
||||
- [MINOR] add flags to indicate when a stream interface is waiting for space/data
|
||||
- [MEDIUM] enable inter-stream_interface wakeup calls
|
||||
- [MAJOR] implement autonomous inter-socket forwarding
|
||||
- [MINOR] add the splice_len member to the buffer struct in preparation of splice support
|
||||
- [MEDIUM] stream_sock: factor out the return path in case of no-writes
|
||||
- [MEDIUM] i/o: rework ->to_forward and ->send_max
|
||||
- [OPTIM] stream_sock: do not ask for polling on EAGAIN if we have read
|
||||
- [OPTIM] buffer: replace rlim by max_len
|
||||
- [OPTIM] stream_sock: factor out the buffer full handling out of the loop
|
||||
- [CLEANUP] replace a few occurrences of (flags & X) && !(flags & Y)
|
||||
- [CLEANUP] stream_sock: move the write-nothing condition out of the loop
|
||||
- [MEDIUM] split stream_sock_write() into callback and core functions
|
||||
- [MEDIUM] stream_sock_read: call ->chk_snd whenever there are data pending
|
||||
- [MINOR] stream_sock: fix a few wrong empty calculations
|
||||
- [MEDIUM] stream_sock: try to send pending data on chk_snd()
|
||||
- [MINOR] global.maxpipes: add the ability to reserve file descriptors for pipes
|
||||
- [MEDIUM] splice: add configuration options and set global.maxpipes
|
||||
- [MINOR] introduce structures required to support Linux kernel splicing
|
||||
- [MEDIUM] add definitions for Linux kernel splicing
|
||||
- [MAJOR] complete support for linux 2.6 kernel splicing
|
||||
- [BUG] reserve some pipes for backends with splice enabled
|
||||
- [MEDIUM] splice: add hints to support older buggy kernels
|
||||
- [MEDIUM] introduce pipe pools
|
||||
- [MEDIUM] splice: make use of pipe pools
|
||||
- [STATS] report pipe usage in the statistics
|
||||
- [OPTIM] make global.maxpipes default to global.maxconn/4 when not specified
|
||||
- [BUILD] fix snapshot date extraction with negative timezones
|
||||
- [MEDIUM] move global tuning options to the global structure
|
||||
- [MEDIUM] splice: add the global "nosplice" option
|
||||
- [BUILD] add USE_LINUX_SPLICE to enable LINUX_SPLICE on linux 2.6
|
||||
- [BUG] we must not exit if protocol binding only returns a warning
|
||||
- [MINOR] add support for bind interface name
|
||||
- [BUG] inform the user when root is expected but not set
|
||||
- [MEDIUM] add support for source interface binding
|
||||
- [MEDIUM] add support for source interface binding at the server level
|
||||
- [MEDIUM] implement bind-process to limit service presence by process
|
||||
- [DOC] document maxpipes, nosplice, option splice-{auto,request,response}
|
||||
- [DOC] filled the logging section of the configuration manual
|
||||
- [DOC] document HTTP status codes
|
||||
- [DOC] document a few missing info about errorfile
|
||||
- [BUG] fix random memory corruption using "show sess"
|
||||
- [BUG] fix unix socket processing of interrupted output
|
||||
- [DOC] add diagrams of queuing and future ACL design
|
||||
- [BUILD] proto_http did not build on gcc-2.95
|
||||
- [BUG] the "source" keyword must first clear optional settings
|
||||
- [BUG] global.tune.maxaccept must be limited even in mono-process mode
|
||||
- [MINOR] ensure that http_msg_analyzer updates pointer to invalid char
|
||||
- [MEDIUM] store a complete dump of request and response errors in proxies
|
||||
- [MEDIUM] implement error dump on unix socket with "show errors"
|
||||
- [DOC] document "show errors"
|
||||
- [MINOR] errors dump must use user-visible date, not internal date.
|
||||
- [MINOR] time: add __usec_to_1024th to convert usecs to 1024th of second
|
||||
- [MINOR] add curr_sec_ms and curr_sec_ms_scaled for current second.
|
||||
- [MEDIUM] measure and report session rate on frontend, backends and servers
|
||||
- [BUG] the "connslots" keyword was matched as "connlots"
|
||||
- [MINOR] acl: add 2 new verbs: fe_sess_rate and be_sess_rate
|
||||
- [MEDIUM] implement "rate-limit sessions" for the frontend
|
||||
- [BUG] interface binding: length must include the trailing zero
|
||||
- [BUG] typo in timeout error reporting : report *res and not *err
|
||||
- [OPTIM] maintain_proxies: only wake up when the frontend will be ready
|
||||
- [OPTIM] rate-limit: cleaner behaviour on low rates and reduce consumption
|
||||
- [BUG] switch server-side stream interface to close in case of abort
|
||||
- [CLEANUP] remove last references to term_trace
|
||||
- [OPTIM] freq_ctr: do not rotate the counters when reading
|
||||
- [BUG] disable any analysers for monitoring requests
|
||||
- [BUG] rate-limit in defaults section was ignored
|
||||
- [BUG] task: fix handling of duplicate keys
|
||||
- [OPTIM] task: don't unlink a task from a wait queue when waking it up
|
||||
- [OPTIM] displace tasks in the wait queue only if absolutely needed
|
||||
- [MEDIUM] minor update to the task api: let the scheduler queue itself
|
||||
- [BUG] event_accept() must always wake the task up, even in health mode
|
||||
- [CLEANUP] task: distinguish between clock ticks and timers
|
||||
- [OPTIM] task: reduce the number of calls to task_queue()
|
||||
- [OPTIM] do not re-check req buffer when only response has changed
|
||||
- [CLEANUP] don't enable kernel splicing when socket is closed
|
||||
- [CLEANUP] buffer_flush() was misleading, rename it as buffer_erase
|
||||
- [MINOR] buffers: implement buffer_flush()
|
||||
- [MEDIUM] rearrange forwarding condition to enable splice during analysis
|
||||
- [BUILD] build fixes for Solaris
|
||||
- [BUILD] proto_http did not build on gcc-2.95 (again)
|
||||
- [CONTRIB] halog: fast log parser for haproxy
|
||||
- [CONTRIB] halog: faster fgets() and add support for percentile reporting
|
||||
|
||||
2008/04/19 : 1.3.15
|
||||
- [BUILD] Added support for 'make install'
|
||||
- [BUILD] Added 'install-man' make target for installing the man page
|
||||
|
@ -2,9 +2,9 @@
|
||||
HAProxy
|
||||
Configuration Manual
|
||||
----------------------
|
||||
version 1.3.15
|
||||
version 1.3.16-rc1
|
||||
willy tarreau
|
||||
2008/04/19
|
||||
2009/03/09
|
||||
|
||||
|
||||
This document covers the configuration language as implemented in the version
|
||||
|
Loading…
Reference in New Issue
Block a user