Search filters

Type

Section

Actions

Changelog - HAProxy Enterprise 1.9r1

#2020/05/28 : 1.9r1 (1.0.0-215.948)

#2020/04/02 : 1.9r1 (1.0.0-214.948)

  • BUG/CRITICALhpacknever index a header into the headroom after wrapping
  • BUG/MINORhttp-anaReset request analysers on error when waiting for response
  • BUG/MINORfiltersForward everything if no data filters are called
  • BUG/MINORfiltersUse filter offset to decude the amount of forwarded data
  • MINORhttp-rulesHandle the rule direction when a redirect is evaluated
  • BUG/MINORhttp_anamake sure redirect flags don't have overlapping bits
  • MINORhttp-rulesAdd a flag on redirect rules to know the rule direction
  • BUG/MEDIUMhttpunbreak redirects in legacy mode
  • DOCinternalsFix spelling errors in filters.txt
  • BUG/MINORstatsFix color of draining servers on stats page
  • BUG/MINORpeersavoid an infinite loop with peers_fe is NULL
  • BUG/MINORpeersinit bind_proc to 1 if it wasn't initialized
  • REGTESTincrease timeouts on the seamless-reload test
  • REGTESTSuse command -v instead of which
  • BUG/MINORconnectionsMake sure we free the connection on failure.
  • DOCassorted typo fixes in the documentation
  • DOCproxy_protocolReserve TLV type 0x05 as PP2_TYPE_UNIQUE_ID
  • BUG/MINORhaproxyalways initialize sleeping_thread_mask
  • DOCsslclarify security implications of TLS tickets
  • DOCimprove description of no-tls-tickets
  • DOCfix typo about no-tls-tickets
  • BUG/MINORrulesIncrement be_counters if backend is assigned for a silent-drop
  • BUG/MINORrulesPreserve FLT_END analyzers on silent-drop action
  • BUG/MINORhttp-rulesFix a typo in the reject action function
  • BUG/MINORhttp-rulesPreserve FLT_END analyzers on reject action
  • BUG/MINORluaIgnore the reserve to know if a channel is full or not
  • BUG/MINORhttp-anaReset request analysers on a response side error
  • REGTESTmake the PROXY TLV validation depend on version 2.2
  • BUG/MAJORproxy_protocolProperly validate TLV lengths
  • DOCfix incorrect indentation of http_auth_*
  • BUG/MAJORlistfix invalid element address calculation
  • BUG/MINORdnsignore trailing dot
  • BUG/MINORsampleMake sure to return stable IDs in the unique-id fetch
  • BUG/MINORconnectionmake sure to correctly tag local PROXY connections
  • BUG/MEDIUMsslfix several bad pointer aliases in a few sample fetch functions
  • BUG/MINORsamplefix the json converter's endian-sensitivity
  • BUILDebtreeimprove architecture-specific alignment
  • MINORcompileradd new alignment macros
  • BUILDfix recent build failure on unaligned archs
  • BUG/MEDIUMebtreedon't set attribute packed without unaligned access support
  • MINORcompilermove CPU capabilities definition from config.h and complete them
  • BUG/MEDIUMshctxmake sure to keep all blocks aligned
  • CONTRIBdebugalso support reading values from stdin
  • CONTRIBdebugsupport reporting multiple values at once
  • CONTRIBdebugadd the possibility to decode the value as certain types only
  • BUILDcfgparsesilence a bogus gcc warning on 32-bit machines
  • BUG/MAJORhttp-anaAlways abort the request when a tarpit is triggered
  • BUG/MINORhttp-anaMatching on monitor-uri should be case-sensitive
  • BUG/MINORfiltersCount HTTP headers as filtered data but don't forward them
  • MINORfiltersForward data only if the last filter forwards something
  • MINORhttp-htxAdd a function to retrieve the headers size of an HTX message
  • SCRIPTSannounce-releaseuse mutt -H instead of -i to include the draft
  • BUG/MINORnamespaceavoid closing fd when socket failed in my_socketat
  • BUILDsslimprove SSL_CTX_set_ecdh_auto compatibility
  • SCRIPTSmake announce-release executable again
  • BUG/MINORtcpdon't try to set defaultmss when value is negative
  • DOCword converter ignores delimiters at the start or end of input string
  • BUG/MINORtcpavoid closing fd when socket failed in tcp_bind_listener
  • BUG/MINORlistenerenforce all_threads_mask on bind_thread on init
  • BUG/MEDIUMlisteneronly consider running threads when resuming listeners
  • BUG/MINORdnsallow 63 char in hostname
  • BUG/MINORunixbetter catch situations where the unix socket path length is close to the limit
  • SCRIPTSannounce-releaseallow the user to force to overwrite old files
  • SCRIPTSannounce-releaseplace the send command in the mail's header
  • MINORaclWarn when an ACL is named 'or'
  • BUG/MINORsslwe may only ignore the first 64 errors
  • BUG/MAJORmemoryDon't forget to unlock the rwlock if the pool is empty.
  • BUG/MEDIUMmemoryAdd a rwlock before freeing memory.
  • MINORmemoryOnly init the pool spinlock once.
  • BUG/MEDIUMmemory_poolUpdate the seq number in pool_flush().
  • BUG/MINORconnectionfix ip6 dst_port copy in make_proxy_line_v2
  • BUG/MEDIUMpipefix a use-after-free in case of pipe creation error

#2020/01/27 : 1.9r1 (1.0.0-208.876)

  • BUG/MINORdnsallow srv record weight set to 0
  • BUG/MINORhttp-ana/filtersWait end of the http_end callback for all filters
  • BUG/MEDIUMmux-h2make sure we don't emit TE headers with anything but trailers
  • BUG/MEDIUM0rttOnly consider the SSL handshake.
  • BUG/MINORhttp_actdon't check capture id in backend
  • MINORproxy/http-anaAdd support of extra attributes for the cookie directive
  • BUG/MINORtcp-rulesFix memory releases on error path during action parsing
  • BUG/MINORstick-tableUse MAX_SESS_STKCTR as the max track ID during parsing
  • BUG/MINORhttp-rulesRemove buggy deinit functions for HTTP rules
  • BUG/MINOR51dFix bug when HTX is enabled
  • BUG/MINORdnsMake dns_query_id_seed unsigned
  • BUG/MINORcacheFix leak of cache name in error path
  • BUG/MINORpatternhandle errors from fgets when trying to load patterns
  • BUG/MINORstreamdon't mistake match rules for store-request rules
  • BUG/MEDIUMcli_getsocks must send the peers sockets
  • REGTESTadd sample_fetches/hashes.vtc to validate hashes
  • BUG/MAJORhashesfix the signedness of the hash inputs
  • BUG/MEDIUMmux_h1Don't call h1_send if we subscribed().
  • BUG/MEDIUMmworkerremain in mworker mode during reload
  • BUG/MEDIUMmux-h2fix missing test on sending_list in previous patch
  • BUG/MINORmux-h2use a safe list_for_each_entry in h2_send()
  • BUG/MEDIUMsessiondo not report a failure when rejecting a session
  • BUG/MINORchannelinject output data at the end of output
  • BUG/MEDIUMhttp-anaTruncate the response when a redirect rule is applied
  • BUG/MINORproxyFix input data copy when an error is captured
  • BUG/MINORh1Report the right error position when a header value is invalid
  • BUG/MINORchecksrefine which errno values are really errors.
  • BUG/MINORsslopenssl-compat: 1.9 uses OPENSSL_VERSION, not HA_OPENSSL_VERSION
  • BUG/MINORsslopenssl-compat: Fix getm_ defines
  • BUG/MEDIUMfd/threadsfix a concurrency issue between add and rm on the same fd
  • MINORfd/threadsmake _GET_NEXT()/_GET_PREV() use the volatile attribute

#2019/12/20 : 1.9r1 (1.0.0-206.845)

  • BUG/MAJORtaskadd a new TASK_SHARED_WQ flag to fix foreing requeuing
  • MINORtaskonly check TASK_WOKEN_ANY to decide to requeue a task
  • BUG/MEDIUMsslDon't set the max early data we can receive too early.
  • BUG/MINORsamplealways check converters' arguments
  • BUG/MINORsamplefix the closing bracket and LF in the debug converter

#2019/12/11 : 1.9r1 (1.0.0-206.840)

  • BUILD/MINORunix sockets: silence an absurd gcc warning about strncpy()
  • BUG/MINORlistenerfix off-by-one in state name check
  • BUG/MINORservermake agent-addr work on default-server line
  • BUG/MINORlistenerdo not immediately resume on transient error
  • BUG/MINORmworkerproperly pass SIGTTOU/SIGTTIN to workers
  • BUG/MINORlogfix minor resource leaks on logformat error path
  • DOCremove references to the outdated architecture.txt
  • BUILDdo not disable -Wformat-truncation anymore
  • BUILD/MINORtoolsshut up the format truncation warning in get_gmt_offset()
  • BUILD/MINORsslshut up a build warning about format truncation
  • BUG/MINORtasksonly requeue a task if it was already in the queue
  • DOClistenersadd a few missing transitions
  • BUG/MEDIUMkqueueMake sure we report read events even when no data.
  • BUG/MEDIUMproto_udp/threadsrecv() and send() must not be exclusive.
  • BUG/MAJORdnsadd minimalist error processing on the Rx path
  • DOCdocument the listener state transitions
  • BUG/MEDIUMlistener/threadsfix a remaining race in the listener's accept()
  • BUG/MINORlisteneralso clear the error flag on a paused listener
  • BUG/MINORlistener/threadsalways use atomic ops to clear the FD events
  • BUG/MINORproxymake soft_stop() also close FDs in LI_PAUSED state

#2019/12/06 : 1.9r1 (1.0.0-206.820)

  • BUG/MEDIUMchecksMake sure we set the task affinity just before connecting.
  • BUG/MEDIUMtasksMake sure we switch wait queues in task_set_affinity().
  • BUG/MINORmux-h1Fix conditions to know whether or not we may receive data
  • BUG/MINORmux-h1Don't rely on CO_FL_SOCK_RD_SH to set H1C_F_CS_SHUTDOWN
  • BUG/MEDIUMmux-h1Never reuse H1 connection if a shutw is pending
  • BUG/MINORsslcertificate choice can be unexpected with openssl >= 1.1.1
  • BUG/MEDIUMlistener/threadfix a race when pausing a listener
  • BUG/MEDIUMstream-intdon't subscribed for recv when we're trying to flush data
  • DOCmove the group keyword at the right place
  • DOCclarify matching strings on binary fetches
  • DOCClarify behavior of server maxconn in HTTP mode
  • BUG/MEDIUMstreamaddress a very rare unhandled connection issue
  • BUG/MINORhttp-htxDon't make http_find_header() fail if the value is empty

#2019/11/27 : 1.9r1 (1.0.0-206.807)

  • BUG/MINORcontrib/prometheus-exporterdecode parameter and value only
  • BUG/MINORcontrib/prometheus-exporterUse HTX errors and not legacy ones
  • MINORstatsReport max times in addition of the averages for sessions
  • MINORcontrib/prometheus-exporterAdd a param to ignore servers in maintenance
  • MINORcontrib/prometheus-exporterfilter exported metrics by scope
  • MINORcontrib/prometheus-exporterreport the number of idle conns per server
  • BUG/MINORcontrib/prometheus-exporterRename some metrics
  • MINORcontrib/prometheus-exporterReport metrics about max times for sessions
  • MINORcountersAdd fields to store the max observed for {q,c,d,t}_time
  • MINORstreamRemove the lock on the proxy to update time stats
  • MINORfreq_ctrMake the sliding window sums thread-safe
  • DOCfix typo in Prometheus exporter doc
  • BUG/MINORstatsAdd a missing break in a switch statement
  • BUG/MINORstreaminit variables when the list is empty
  • SCRIPTSgit-show-backportsadd -s to proposed cherry-pick commands
  • SCRIPTScreate-releaseshow the correct origin name in suggested commands
  • BUG/MAJORmux-h2don't try to decode a response HEADERS frame in idle state
  • BUG/MAJORh2make header field name filtering stronger
  • BUG/MAJORh2reject header values containing invalid chars
  • MINORistadd ist_find_ctl()
  • DOCAdd documentation about the use-service action
  • BUG/MINORclifix out of bounds in -S parser
  • BUG/MINORstream-intFix si_cs_recv() return value
  • BUG/MINORmux-h1Fix tunnel mode detection on the response path
  • BUG/MEDIUMstream-intDon't loose events on the CS when an EOS is reported
  • BUILD/MINORsslfix compiler warning about useless statement
  • BUG/MINORsslfix crt-list neg filter for openssl < 1.1.1
  • BUG/MINORmux-h1Don't set CS_FL_EOS on a read0 when receiving data to pipe
  • BUG/MEDIUMfiltersDon't call TCP callbacks for HTX streams

#2019/11/15 : 1.9r1 (1.0.0-206.778)

  • BUG/MINORloglimit the size of the startup-logs
  • BUG/MEDIUMlistenersalways pause a listener on out-of-resource condition
  • BUG/MEDIUMMake sure we leave the session list in session_free().

#2019/11/14 : 1.9r1 (1.0.0-206.775)

  • BUG/MINORqueue/threadsmake the queue unlinking atomic
  • DOCmanagementfix typo on cache_lookups stats output
  • DOCmanagementdocument cache_hits and cache_lookups in the CSV format
  • DOCmanagementdocument reuse and connect counters in the CSV format
  • BUGdnstimeout resolve not applied for valid resolutions
  • BUG/MEDIUMstreamBe sure to release allocated captures for TCP streams
  • MINORdochttp-reuse connection pool fix
  • BUG/MEDIUMstreamBe sure to support splicing at the mux level to enable it
  • BUG/MEDIUMmux-h1Disable splicing for chunked messages
  • BUG/MEDIUMmux-h2immediately report connection errors on streams
  • BUG/MEDIUMmux-h2immediately remove a failed connection from the idle list
  • BUG/MEDIUMmux-h2report no available stream on a connection having errors
  • BUG/MINORconfigUpdate cookie domain warn to RFC6265
  • BUG/MEDIUMserversOnly set SF_SRV_REUSED if the connection if fully ready.
  • MINORmuxAdd a new method to get informations about a mux.
  • BUG/MINORspoefix off-by-one length in UUID format string
  • BUG/MAJORstream-intDon't receive data from mux until SI_ST_EST is reached
  • BUG/MINORclidon't call the kw->io_release if kw->parse failed
  • MINORtcpavoid confusion in time parsing init
  • BUG/MINORmux-h2do not emit logs on backend connections
  • MINORconfigwarn on presence of \n in header values/replacements

#2019/10/23 : 1.9r1 (1.0.0-205.754)

  • BUG/MEDIUMpatternmake the pattern LRU cache thread-local and lockless
  • BUG/MINORstick-tablefix an incorrect 32 to 64 bit key conversion

#2019/10/22 : 1.9r1 (1.0.0-205.752)

  • BUG/MINORsslfix memcpy overlap without consequences.
  • BUG/MINORmux-h2also make sure blocked legacy connections may expire
  • BUG/MAJORmux-h2fix incorrect backport of connection timeout fix
  • BUG/MINORsampleMake the `field` converter compatible with `-m found`
  • BUG/MINORcachealloc shctx after check config
  • BUG/MINORstick-tableNever exceed (MAX_SESS_STKCTR-1) when fetching a stkctr
  • BUG/MINORsslFix fd leak on error path when a TLS ticket keys file is parsed
  • BUG/MINORmworker/clireload fail with inherited FD
  • MINORsampleAdd UUID-fetch
  • BUG/MEDIUMssl'tune.ssl.default-dh-param' value ignored with openssl > 1.1.1
  • CLEANUPbindhandle warning label on bind keywords parsing.
  • CLEANUPsslmake ssl_sock_load_dh_params handle errcode/warn
  • CLEANUPsslmake ssl_sock_put_ckch_into_ctx handle errcode/warn
  • CLEANUPsslmake ssl_sock_load_cert*() return real error codes
  • BUG/MEDIUMmux_ptOnly call the wake emthod if nobody subscribed to receive.
  • BUG/MEDIUMmux_ptDon't destroy the connection if we have a stream attached.
  • BUG/MAJORidle conns: schedule the cleanup task on the correct threads
  • MINORversionmake the version strings variables, not constants
  • BUG/MEDIUMmux_ptMake sure we don't have a conn_stream before freeing.
  • BUG/MINORtcpDon't alter counters returned by tcp info fetchers
  • BUG/MINORmworker/sslclose openssl FDs unconditionally
  • BUG/MINORhttp-htxProperly set htx flags on error files to support keep-alive
  • BUG/MINORWURFLfix send_log() function arguments
  • BUG/MINORmux-h1Capture ignored parsing errors
  • BUG/MINORmux-h1Mark the output buffer as full when the xfer is interrupted
  • BUG/MINORchunkFix tests on the chunk size in functions copying data
  • BUG/MEDIUMhtxCatch chunk_memcat() failures when HTX data are formatted to h1
  • BUILDsslwrong #ifdef for SSL engines code
  • BUG/MINORsslabort on sni_keytypes allocation failure
  • BUG/MINORsslfree the sni_keytype nodes
  • BUG/MINORsslabort on sni allocation failure

#2019/10/11 : 1.9r1 (1.0.0-205.720)

  • MINORstatsmention in the help message support for json and typed
  • DOCclarify some points around http-send-name-header's behavior
  • BUG/MEDIUMcachemake sure not to cache requests with absolute-uri
  • BUG/MEDIUMmux-h2do not enforce timeout on long connections
  • BUILDebtreemake eb_is_empty() and eb_is_dup() take a const
  • MINORmux-h2add a per-connection list of blocked streams
  • BUG/MINORluaProperly initialize the buffer's fields for string samples in hlua_lua2(smp|arg)

#2019/10/10 : 1.9r1 (1.0.0-205.713)

  • MINORmuxesDon't bother to LIST_DEL(&conn->list) before calling conn_free().

#2019/10/04 : 1.9r1 (1.0.0-205.712)

#2019/09/27 : 1.9r1 (1.0.0-203.712)

  • BUG/MINORcontrib/prometheus-exporterReturn the time averages in seconds
  • MINORstatsAdd the support of float fields in stats
  • BUG/MEDIUMnamespacefix fd leak in master-worker mode
  • DOCFix documentation about the cli command to get resolver stats
  • MINORspoeSupport the async mode with several threads
  • MINORspoeImprove generation of the engine-id
  • BUG/MEDIUMspoeUse a different engine-id per process
  • BUG/MAJORmux_h2Don't consume more payload than received for skipped frames
  • BUG/MINORmux-h2Use the dummy error when decoding headers for a closed stream
  • BUG/MEDIUMmux-h2don't reject valid frames on closed streams
  • BUG/MEDIUMnamespaceclose open namespaces during soft shutdown
  • BUG/MINORmux-h2do not wake up blocked streams before the mux is ready
  • BUG/MEDIUMcheck/threadsmake external checks run exclusively on thread 1
  • BUG/MAJORmux-h2Handle HEADERS frames received after a RST_STREAM frame
  • BUG/MINORMissing stat_field_names (since f21d17bb)
  • BUG/MINORaclFix memory leaks when an ACL expression is parsed
  • BUG/MINORfiltersProperly set the HTTP status code on analysis error
  • BUG/MEDIUMhttpalso reject messages where chunked is missing from transfer-enoding
  • MEDIUMWURFLHTX awareness.
  • MINORWURFLremoves heading wurfl-information-separator from wurfl-get-all() and wurfl-get() results

#2019/09/24 : 1.9r1 (1.0.0-203.692)

  • BUG/MEDIUMserversFix a race condition with idle connections.
  • MINORsampleAdd sha2([<bits>]) converter
  • BUILDhapee/modulesselect either md5 or md5sum
  • MINORhapee/WURFLadded live update database function
  • MINORhapee/WURFLadded custom API log function
  • MINORhapee/WURFLadded function to check correct module initialization
  • BUG/MINORhapee/WURFLcorrected version check of used wurfl library

#2019/09/10 : 1.9r1 (1.0.0-203.685)

  • MINORcontrib/prometheus-exporterReport DRAIN/MAINT/NOLB status for servers
  • MEDIUMchecksMake sure we unsubscribe before calling cs_destroy().
  • BUG/MINORlistenerFix a possible null pointer dereference
  • MINORstatsreport the number of idle connections for each server
  • BUG/MEDIUMconnectiondon't keep more idle connections than ever needed
  • BUG/MINORlb/leastconnignore the server weights for empty servers
  • BUG/MEDIUMcacheDon't cache objects if the size of headers is too big
  • BUG/MINORh1Properly reset h1m when parsing is restarted
  • BUG/MINORhttp-anaReset response flags when 1xx messages are handled
  • BUG/MEDIUMproto-httpAlways start the parsing if there is no outgoing data
  • BUG/MEDIUMurl32 does not take the path part into account in the returned hash.

#2019/08/26 : 1.9r1 (1.0.0-202.674)

  • BUG/MEDIUMlistener/threadsfix an AB/BA locking issue in delete_listener()
  • BUG/MINORmworkerdisable SIGPROF on re-exec
  • DOCfixed typo in management.txt
  • BUG/MEDIUMmux-h1do not truncate trailing 0CRLF on buffer boundary

#2019/08/21 : 1.9r1 (1.0.0-202.670)

  • BUG/MINORFix prometheus '# TYPE' and '# HELP' headers
  • BUG/MINORcontrib/prometheus-exporterDon't use channel_htx_recv_max()
  • MINORcontrib/prometheus-exporterFollow best practices about metrics type
  • MINORcontrib/prometheus-exporterRename some metrics to be more usable
  • MINORcontrib/prometheus-exporterRemove usless rate metrics
  • BUG/MINORcontrib/prometheus-exporterFix a typo in the run-queue metric type

#2019/08/16 : 1.9r1 (1.0.0-202.664)

  • BUG/MEDIUMluaFix test on the direction to set the channel exp timeout
  • BUG/MINORluafix setting netfilter mark
  • BUG/MINORbuffers/threadsalways clear a buffer's head before releasing it
  • MINORsslssl_fc_has_early should work for BoringSSL
  • BUG/MINORsslfix 0-RTT for BoringSSL

#2019/08/06 : 1.9r1 (1.0.0-202.659)

  • BUG/MEDIUMchecksmake sure to close nicely when we're the last to speak
  • BUG/MINORmux-h2always reset rcvd_s when switching to a new frame
  • BUG/MINORmux-h2always send stream window update before connection's
  • BUG/MEDIUMmux-h2do not recheck a frame type after a state transition
  • BUG/MINORmux-h2use CANCEL, not STREAM_CLOSED in h2c_frt_handle_data()
  • BUG/MINORmux-h2don't refrain from sending an RST_STREAM after another one
  • BUG/MEDIUMfdAlways reset the polled_mask bits in fd_dodelete().

#2019/08/02 : 1.9r1 (1.0.0-202.652)

  • BUG/MEDIUMmux-h2split the stream's and connection's window sizes
  • BUG/MEDIUMmux-h2unbreak receipt of large DATA frames

#2019/08/01 : 1.9r1 (1.0.0-202.650)

  • BUG/MINORstream-intalso update analysers timeouts on activity
  • BUG/MAJORhttp/sampleuse a static buffer for raw -> htx conversion
  • BUG/MEDIUMlb-chashEnsure the tree integrity when server weight is increased

#2019/07/30 : 1.9r1 (1.0.0-202.647)

  • BUG/MAJORqueue/threadsavoid an AB/BA locking issue in process_srv_queue()
  • BUG/MINORhluaOnly execute functions of HTTP class if the txn is HTTP ready
  • MINORhluaAdd a flag on the lua txn to know in which context it can be used
  • MINORhluaDon't set request analyzers on response channel for lua actions
  • BUG/MEDIUMhluaCheck the calling direction in lua functions of the HTTP class
  • BUG/MINORluaSet right direction and flags on new HTTP objects
  • BUG/MINORhlua/htxReset channels analyzers when txn:done() is called
  • DOCimprove the wording in CONTRIBUTING about how to document a bug fix
  • BUG/MINORlogmake sure writev() is not interrupted on a file output
  • BUILDlog/threadsimplement the logsrv lock
  • BUG/MEDIUMstreamsDon't switch the SI to SI_ST_DIS if we have data to send.
  • BUG/MEDIUMlb-chashFix the realloc() when the number of nodes is increased
  • BUILDthreadsadd the definition of PROTO_LOCK
  • BUG/MINORproxyalways lock stop_proxy()
  • BUG/MEDIUMprotocolsadd a global lock for the init/deinit stuff

#2019/07/23 : 1.9r1 (1.0.0-202.632)

  • BUG/CRITICALhttp_anaFix parsing of malformed cookies which start by a delimiter
  • BUG/MINORhttp_htxSupport empty errorfiles
  • BUG/MINORhttp_anaBe sure to have an allocated buffer to generate an error
  • BUG/MEDIUMtcp-checksdo not dereference inexisting conn_stream
  • BUG/MINORmux-h1Close server connection if input data remains in h1_detach()
  • BUG/MEDIUMmux-h1Trim excess server data at the end of a transaction
  • BUG/MINORchecksdo not exit tcp-checks from the middle of the loop
  • BUG/MINORsessionSend a default HTTP error if accept fails for a H1 socket
  • BUG/MINORsessionEmit an HTTP error if accept fails only for H1 connection
  • BUG/MINORhluaMake the function txn:done() HTX aware
  • BUG/MINORcache/htxMake maxage calculation HTX aware
  • BUG/MINORhttp_fetchFix http_auth/http_auth_group when called from TCP rules
  • BUG/MINORbackenddo not try to install a mux when the connection failed
  • BUG/MEDIUMhttp/htxunbreak option http_proxy
  • BUG/MEDIUMchecksDon't attempt to receive data if we already subscribed.

#2019/07/19 : 1.9r1 (1.0.0-202.617)

  • BUILDhapee/darepaired build in case of using old DeviceAtlas library
  • MINORhapee/daadd function that allow data reload
  • MINORhapee/daadd spin locking
  • MINORhapee/daadd support for loading a precompiled json data
  • MINORhapee/51dadd function that allow data reload
  • BUG/MINORhapee/51dadd spin locking

#2019/07/15 : 1.9r1 (1.0.0-202.611)

  • BUG/MEDIUMtcp-checkunbreak multiple connect rules again
  • BUG/MINORmux-ptdo not pretend there's more data after a read0
  • BUG/MINORmux-h1Correctly report Ti timer when HTX and keepalives are used

#2019/07/12 : 1.9r1 (1.0.0-202.608)

  • BUG/MAJORlistenerfix thread safety in resume_listener()
  • MINORtaskintroduce work lists
  • MINORlistsadd LIST_ADDED() to check if an element belongs to a list
  • BUG/MEDIUMmux-h1Don't release h1 connection if there is still data to send
  • BUG/MEDIUMdacast the chunk to string.
  • BUG/MEDIUMchecksDon't attempt to read if we destroyed the connection.
  • BUG/MINORserverBe really able to keep pool-max-conn idle connections
  • BUG/MEDIUMfd/threadsfix excessive CPU usage on multi-thread accept
  • BUG/MEDIUMserversDon't forget to set srv_cs to NULL if we can't reuse it.
  • BUG/MEDIUMstream-intDon't rely on CF_WRITE_PARTIAL to unblock opposite si
  • MINORstream-intFactorize processing done after sending data in si_cs_send()
  • BUG/MEDIUMlb_fasDon't test the server's lb_tree from outside the lock
  • BUG/MEDIUMsessionsDon't keep an extra idle connection in sessions.
  • BUG/MEDIUMchecksMake sure the tasklet won't run if the connection is closed.
  • BUG/MEDIUMconnectionsAlways call shutdown, with no linger.
  • BUG/MINORmux-h1Don't return the empty chunk on HEAD responses
  • BUG/MINORmux-h1Skip trailers for non-chunked outgoing messages
  • BUG/MEDIUMmux-h1Always release H1C if a shutdown for writes was reported
  • BUG/MEDIUMsslDon't attempt to set alpn if we're not using SSL.
  • BUG/MINORmworker/clidon't output a \n before the response
  • BUG/MINORmux-h1Make format errors during output formatting fatal
  • BUG/MEDIUMmux-h1Use buf_room_for_htx_data() to detect too large messages

#2019/06/26 : 1.9r1 (1.0.0-202.586)

  • BUG/MINORmemorySet objects size for pools in the per-thread cache
  • BUG/MAJORmux-h1Don't crush trash chunk area when outgoing message is formatted
  • BUG/MINORspoeFix memory leak if failing to allocate memory
  • BUILDmakefiledo not rely on shell substitutions to determine git version
  • BUILDmakefileuse :space: instead of digits to count commits
  • BUG/MEDIUMmworkerdon't call the thread and fdtab deinit
  • BUG/MEDIUMlb_fwlcDon't test the server's lb_tree from outside the lock

#2019/06/20 : 1.9r1 (1.0.0-202.579)

  • BUILDhapee/51dfix error when building with 51Degrees enabled
  • BUG/MEDIUMmux-h2Remove the padding length when a DATA frame size is checked
  • BUG/MEDIUMmux-h2Reset padlen when several frames are demux
  • BUG/MINORtaskprevent schedulable tasks from starving under high I/O activity
  • BUG/MEDIUMcompressionSet Vary: Accept-Encoding for compressed responses
  • BUG/MINORmux-h1Add the header connection in lower case in outgoing messages
  • BUG/MINORlua/htxMake txn.req_req_* and txn.res_rep_* HTX aware
  • BUG/MEDIUMh2/htxUpdate data length of the HTX when the cookie list is built
  • BUG/MEDIUMconnectionsDon't try to send early data if we have no mux.
  • BUG/MEDIUMconnectionsDon't use ALPN to pick mux when in mode TCP.
  • BUG/MINORmux-h1Wake busy mux for I/O when message is fully sent
  • BUG/MEDIUMconnectionsDon't call shutdown() if we want to disable linger.
  • BUG/MINORfl_trace/htxBe sure to always forward trailers and EOM
  • MINORflt_traceDon't scrash the original offset during the random forwarding
  • BUG/MINORflt_trace/htxOnly apply the random forwarding on the message body.
  • BUG/MEDIUMproto_htxIntroduce the state ENDING during forwarding
  • BUG/MINORhttpUse the global value to limit the number of parsed headers
  • BUG/MINORchannel/htxCall channel_htx_full() from channel_full()
  • MINORdocupdate the manpage and usage message about -S
  • MINORdocmention HAPROXY_LOCALPEER in the man
  • MINORdocadd master-worker in the man page
  • MINORdocRemove -Ds option in man page
  • BUG/MINOR51d/htxThe _51d_fetch method, and the methods it calls are now HTX aware.
  • BUG/MINORhttp-rulesmention deny_status for deny in the error message
  • BUG/MEDIUMcompression/htxFix the adding of the last data block
  • BUG/MEDIUMmux-h2make sure the connection timeout is always set
  • BUG/MINORtimemake sure only one thread sets global_now at boot
  • BUG/MINORmux-h1Don't send more data than expected
  • BUG/MINORmux-h1errflag must be set on H1S and not H1M during output processing
  • BUG/MINORchannel/htxDon't alter channel during forward for empty HTX message
  • BUG/MINORpeersWrong stick-table update message building.
  • BUG/MEDIUMvarsmake the tcp/http unset-var() action support conditions
  • BUG/MEDIUMvarsmake sure the scope is always valid when accessing vars
  • BUILDtoolsdo not use the weak attribute for trace() on obsolete linkers
  • BUG/MEDIUMmux-h1only check input data for the current stream, not next one
  • BUG/MEDIUMconnectionfix multiple handshake polling issues
  • BUG/MINORdeinit/threadsmake hard-stop-after perform a clean exit
  • BUG/MEDIUMconnectionUse the session to get the origin address if needed.
  • BUG/MEDIUMh2Don't forget to set h2s->cs to NULL after having free'd cs.
  • MEDIUMsessionsIntroduce session flags.
  • BUG/MEDIUMmux-h1Don't skip the TCP splicing when there is no more data to read
  • BUG/MEDIUMhttpfix http-request reject when not final
  • BUG/MINORmux-h1Wake up the mux if it is busy when a 1xx response is handled
  • BUG/MEDIUMmux-h1Don't switch the mux in BUSY mode on 1xx messages
  • BUG/MEDIUMthreadsfix double-word CAS on non-optimized 32-bit platforms

#2019/05/27 : 1.9r1 (1.0.0-202.534)

  • BUG/MEDIUMqueuefix the tree walk in pendconn_redistribute.
  • BUG/MAJORlb/threadsmake sure the avoided server is not full on second pass
  • BUILDsslfix latest LibreSSL reg-test error
  • BUG/MINORssl_sockFix memory leak when disabling compression
  • DOCfix typos

#2019/05/24 : 1.9r1 (1.0.0-201.529)

  • BUG/MINORhtxRemove a forgotten while loop in htx_defrag()
  • BUG/MEDIUMproto-htxNot forward too much data when 1xx reponses are handled
  • BUG/MINORmux-h1Report EOI instead EOS on parsing error or H2 upgrade
  • BUG/MINORmux-h2Count EOM in bytes sent when a HEADERS frame is formatted
  • BUG/MEDIUMspoeDon't use the SPOE applet after releasing it
  • BUG/MEDIUMdnsmake the port numbers unsigned
  • BUG/MEDIUMWURFLsegfault in wurfl-get() with missing info.
  • BUG/MEDIUMstreamsDon't switch from SI_ST_CON to SI_ST_DIS on read0.
  • BUILDmakefileremove -fomit-frame-pointer optimisation (solaris)
  • BUILDmakefileuse USE_OBSOLETE_LINKER for solaris
  • MINORcli/activityshow the dumping thread ID starting at 1
  • DOCmanagementplace show activity at the right place
  • BUILDistturn the lower/upper case tables to literal on obsolete linkers
  • BUG/MEDIUMthreadsFix build for 32bits arch with dwcas.
  • BUG/MINORhttp_fetchRely on the smp direction for cookie() and hdr()

#2019/05/13 : 1.9r1 (1.0.0-200.514)

  • BUG/MINORvarsFix memory leak in vars_check_arg
  • MINORspoeSet the argument chunk size to 0 when SPOE variables are checked
  • BUG/MINORhtxmake sure to always initialize the HTTP method when parsing a buffer
  • BUG/MAJORmux-h2do not add a stream twice to the send list
  • BUILDthreadsfix again the __ha_cas_dw() definition
  • BUILDthreadsAdd __ha_cas_dw fallback for single threaded builds
  • BUG/MEDIUMh2Don't check send_wait to know if we're in the send_list.
  • BUG/MEDIUMhttpUse pointer to the begining of input to parse message headers
  • BUG/MINORstreamAttach the read side on the response as soon as possible
  • BUILDsslfix again a libressl build failure after the openssl FD leak fix
  • BUG/MEDIUMh2Make sure we set send_list to NULL in h2_detach().
  • MINORhtxSplit on DATA blocks only when blocks are moved to an HTX message
  • BUG/MINORhtxNever transfer more than expected in htx_xfer_blks()
  • BUG/MINORmux-h1Fix the parsing of trailers
  • BUG/MEDIUMspoeBe sure the sample is found before setting its context
  • BUG/MINORmux-h2fix the condition to close a cs-less h2s on the backend
  • BUG/MINORmworker/sslclose OpenSSL FDs on reload
  • BUG/MEDIUMh2/htxnever leave a trailers block alone with no EOM block
  • BUG/MEDIUMmux-h2/htxnever wait for EOM when processing trailers
  • MEDIUMmux-h2discard contents that are to be sent after a shutdown
  • BUG/MEDIUMh2/htxalways fail on too large trailers
  • BUG/MINORmux-h2rely on trailers output not input to turn them to empty data
  • BUG/MEDIUMh2Revamp the way send subscriptions works.
  • MINORdocDocument allow-0rtt on the server line.
  • BUG/MEDIUMsslDon't attempt to use early data with libressl.
  • DOCFix typo in keyword matrix
  • BUG/MINORlogs/threadsproperly split the log area upon startup
  • MINORconnectionmake the debugging helper functions safer
  • BUG/MINORactivityalways initialize the profiling variable
  • CLEANUPtaskreport calls as unsigned in show sess
  • BUG/MEDIUMchecksmake sure the warmup task takes the server lock
  • BUG/MEDIUMstreamsDon't add CF_WRITE_ERROR if early data were rejected.
  • BUG/MEDIUMsslUse the early_data API the right way.

#2019/05/02 : 1.9r1 (1.0.0-200.481)

  • BUG/MEDIUMconnectionsMake sure we remove CO_FL_SESS_IDLE on disown.
  • BUG/MEDIUMchannelsDon't forget to reset output in channel_erase().
  • BUG/MEDIUMpatternfix memory leak in regex pattern functions
  • BUG/MINORchecksfree memory allocated for tasklets
  • BUG/MINORlogproperly free memory on logformat parse error and deinit()
  • BUG/MINORhaproxyfix rule->file memory leak
  • BUG/MEDIUMserversfix typo src instead of srv
  • BUG/MEDIUMport_rangeMake the ring buffer lock-free.
  • MINORthreadsImplement HA_ATOMIC_LOAD().
  • CLEANUPconfigDon't alter listener->maxaccept when nbproc is set to 1
  • MINORconfigTest validity of tune.maxaccept during the config parsing
  • BUG/MEDIUMlistenerFix how unlimited number of consecutive accepts is handled

#2019/04/30 : 1.9r1 (1.0.0-200.469)

  • BUG/MAJORmap/aclreal fix segfault during show map/acl on CLI
  • BUG/MEDIUMcontrib/modsecurityIf host header is NULL, don't try to strdup it
  • DOCcontrib/modsecurityTypos and fix the reject example
  • MINORspoeUse the sample context to pass frag_ctx info during encoding
  • BUG/MEDIUMspoearg len encoded in previous frag frame but len changed
  • BUG/MINORhttpCall stream_inc_be_http_req_ctr() only one time per request

#2019/04/29 : 1.9r1 (1.0.0-200.463)

  • BUG/MEDIUMmux-h2properly deal with too large headers frames
  • BUG/MINORhtxExclude TCP proxies when the HTX mode is handled during startup
  • BUG/MAJORmuxesUse the HTX mode to find the best mux for HTTP proxies only

#2019/04/24 : 1.9r1 (1.0.0-200.460)

  • DOCwurfladded point of contact in MAINTAINERS file
  • MINORwurflenabled multithreading mode
  • BUG/MAJORlb/threadsfix AB/BA locking issue in round-robin LB
  • BUG/MINORspoeDon't systematically wakeup SPOE stream in the applet handler
  • BUG/MEDIUMstreamFix the way early aborts on the client side are handled

#2019/04/19 : 1.9r1 (1.0.0-200.455)

  • MINORssl/cliasync fd io-handlers printable on show fd
  • BUG/MINORdaGet the request channel to call CHECK_HTTP_MESSAGE_FIRST()
  • BUG/MINOR51dGet the request channel to call CHECK_HTTP_MESSAGE_FIRST()
  • BUG/MEDIUMstreamDon't request a server connection if a shutw was scheduled
  • BUG/MEDIUMthread/httpAdd missing locks in set-map and add-acl HTTP rules
  • BUG/MEDIUMh1Don't parse chunks CRLF if not enough data are available
  • MINORpeersadds counters on show peers about tasks calls.
  • DOCupdate for show peers CLI command.
  • MINORpeersAdd a new command to the CLI for peers.
  • BUG/MINORaclproperly detect pattern type SMP_T_ADDR
  • BUG/MEDIUMmapsonly try to parse the default value when it's present
  • BUG/MINORmworkerdisable busy polling in the master process
  • REGTESTSexclude tests that require ssl, pcre if no such feature is enabled
  • BUG/MEDIUMappletsDon't use task_in_rq().
  • BUG/MAJORtaskmake sure never to delete a queued task
  • MINORtasksDon't set the TASK_RUNNING flag when adding in the tasklet list.
  • MEDIUMtasksNo longer use rq.node.leaf_p as a lock.
  • MINORtasksDon't consider we can wake task with tasklet_wakeup().
  • BUG/MEDIUMtasksMake sure we modify global_tasks_mask with the rq_lock.
  • BUG/MEDIUMtasksMake sure we set TASK_QUEUED before adding a task to the rq.
  • BUG/MINORhttp_fetch/htxAllow permissive sample prefetch for the HTX
  • BUG/MAJORhttp_fetchGet the channel depending on the keyword used
  • BUG/MEDIUMhtxDon't return the start-line if the HTX message is empty
  • MINORmux-h1Handle read0 during TCP splicing
  • BUG/MEDIUMmux-h1Enable TCP splicing to exchange data only
  • BUG/MEDIUMmux-h1Notify the stream waiting for TCP splicing if ibuf is empty
  • BUG/MINORmux-h1Don't switch the parser in busy mode if other side has done
  • BUG/MINORmux-h1Process input even if the input buffer is empty
  • BUILD/MINORlistenerSilent a few signedness warnings.

#2019/04/16 : 1.9r1 (1.0.0-200.426)

  • BUG/MINORmworkerensure that we still quits with SIGINT
  • BUG/MINORmworkerdon't exit with an ambiguous value
  • BUG/MINORlistener/mqcorrectly scan all bound threads under low load
  • MINORinitadd a set-dumpable global directive to enable core dumps
  • BUG/MAJORlb/threadsfix insufficient locking on round-robin LB
  • BUILDhtxfix a used uninitialized warning on is_cookie2

#2019/04/15 : 1.9r1 (1.0.0-200.420)

  • BUG/MEDIUMh2Make sure we're not already in the send_list in h2_subscribe().
  • MINORtasksrestore the lower latency scheduling when niced tasks are present
  • MEDIUMtasksonly base the nice offset on the run queue depth
  • BUILDtask/threadfix single-threaded build of task.c
  • MEDIUMtasksimprove fairness between the local and global queues
  • CLEANUPtaskdo not export rq_next anymore
  • BUILDcli/threadsfix build in single-threaded mode
  • MINORcli/activityreport the accept queue sizes in show activity
  • MINORcli/listenerreport the number of accepts on show activity
  • BUG/MINORlistenerrenice the accept ring processing task
  • MINORskip get_gmtime where tm is unused
  • CLEANUPtaskonly perform a LIST_DEL() when the list is not empty
  • OPTIMtasklimit the impact of memory barriers in taks_remove_from_task_list()
  • BUILDlistenershut up a build warning when threads are disabled
  • BUG/MEDIUMinit/threadsconsider epoll_fd/pipes for automatic maxconn calculation
  • MINORtaskuse LIST_DEL_INIT() to remove a task from the queue
  • BUG/MINORproto_htxReset to_forward value when a message is set to DONE
  • BUG/MINORcontrib/prometheus-exporterFix applet accordingly to recent changes
  • BUG/MINORsslFix 48 byte TLS ticket key rotation
  • BUG/MEDIUMmapFix memory leak in the map converter
  • BUG/MINORmux-h1Handle the flag CS_FL_KILL_CONN during a shutdown read/write
  • MINORmux-h1Simplify handling of 1xx responses
  • BUG/MEDIUMhtxFix the process of HTTP CONNECT with h2 connections
  • MINORproto_htxDon't adjust transaction mode anymore in HTX analyzers
  • MEDIUMhtxDeprecate the option 'http-tunnel' and ignore it in HTX
  • BUG/MEDIUMhtxDon't crush blocks payload when append is done on a data block
  • BUG/MEDIUMhtxDefrag if blocks position is changed and the payloads wrap
  • BUG/MINORspoeBe sure to set tv_request when each message fragment is encoded
  • BUG/MEDIUMspoeReturn an error if nothing is encoded for fragmented messages
  • BUG/MEDIUMspoeQueue message only if no SPOE applet is attached to the stream
  • BUG/MINORtasksmake sure the first task to be queued keeps its nice value
  • BUG/MEDIUMtask/threadsaddress a fairness issue between local and global tasks
  • BUG/MEDIUMstream_interfaceDon't bother doing chk_rcv/snd if not connected.
  • BUG/MEDIUMstreamsOnly re-run process_stream if we're in a connected state.
  • BUG/MEDIUMpatternassign pattern IDs after checking the config validity
  • BUG/MEDIUMstreamDon't clear the stream_interface flags in si_update_both.
  • BUG/MEDIUMstreamsStore prev_state before calling si_update_both().
  • BUG/MEDIUMstreamsDon't remove the SI_FL_ERR flag in si_update_both().
  • BUG/MEDIUMhtxfix random premature abort of data transfers
  • BUG/MEDIUMh2Don't attempt to recv from h2_process_demux if we subscribed.
  • BUILDconnectionfix naming of ip_v field
  • BUILDuse inttypes.h instead of stdint.h
  • BUILDfix backport of initcall variant
  • BUG/MINORhtxPreserve empty HTX messages with an unprocessed parsing error
  • MINORclistart addresses by a prefix in 'show cli sockets'
  • BUG/MINORclicorrectly handle abns in 'show cli sockets'

#2019/04/10 : 1.9r1 (1.0.0-200.374)

  • MEDIUMhapee/modulesload the STG_REGISTER initcalls
  • MINORinitcallDon't forget to define the __start/stop_init_##stg symbols.

#2019/04/03 : 1.9r1 (1.0.0-200.372)

  • BUG/MEDIUMpeersfix a case where peer session is not cleanly reset on release.

#2019/04/01 : 1.9r1 (1.0.0-200.371)

  • MINORsslAdd aes_gcm_dec converter
  • MINORtoolsmake memvprintf() never pass a NULL target to vsnprintf()
  • BUILDcacheavoid a build warning with some compilers/linkers
  • BUILDchunkproperly declare pool_head_trash as extern
  • BUILDhttpproperly mark some struct as extern
  • BUILDmakefilework around an old bug in GNU make-3.80
  • BUG/MAJORcheckssegfault during tcpcheck_main
  • BUG/MEDIUMchecksDon't bother subscribing if we have a connection error.

#2019/03/28 : 1.9r1 (1.0.0-200.363)

  • BUG/MEDIUMmworkerdon't free the wrong child when not found
  • BUG/MINORmux-h1Only skip invalid C-L headers on output
  • REGTESTscriptremove platform-specific assigments of OPTIONS
  • REGTESTscriptmake the script use the new features list
  • BUILDreport the whole feature set with their status in haproxy -vv
  • BUILDMakefilealso report disabled options in the BUILD_OPTIONS variable
  • BUILDMakefileconsider a variable's origin and not its value for the options list
  • MINORinitreport the list of optionally available services
  • BUILDtoolsfix a build warning on some 32-bit archs
  • REGTESTremove unexpected nbthread statement from Lua test cases
  • DOCThe option httplog is no longer valid in a backend.
  • REGTESTEnable again reg tests with HEAD HTTP method usage.
  • BUG/MEDIUMtask/h2add an idempotent task removal fucntion
  • BUG/MEDIUMh2Remove the tasklet from the task list if unsubscribing.
  • BUG/MEDIUMh2Follow the same logic in h2_deferred_shut than in h2_snd_buf.
  • BUG/MEDIUMh2Use the new sending_list in h2s_notify_send().
  • BUG/MEDIUMh2only destroy the h2s if h2s->cs is NULL.
  • CLEANUPmuxes/stream-intRemove flags CS_FL_READ_NULL and SI_FL_READ_NULL
  • BUG/MEDIUMhttp/htxFix handling of the option abortonclose
  • MINORmux-h1Set CS_FL_EOI the end of the message is reached
  • BUG/MEDIUMmux-h2make sure to always notify streams of EOS condition
  • MEDIUMmux-h2Don't mix the end of the message with the end of stream
  • CONTRIBdebugreport the CS and CF's EOI flags
  • MINORchannelReport EOI on the input channel if it was reached in the mux
  • MINORconnectionand new flag to mark end of input (EOI)
  • MINORmux-h2Remove useless test on ES flag in h2_frt_transfer_data()
  • BUG/MINORproto-httpDon't forward request body anymore on error
  • BUG/MEDIUMh2Try to be fair when sending data.
  • MINORlistsadd a LIST_DEL_INIT() macro
  • BUG/MINORlogproperly format IPv6 address when LOG_OPT_HEXA modifier is used.
  • MINORmux-h2copy small data blocks more often and reduce the number of pauses
  • BUG/MEDIUMsslability to set TLS 1.3 ciphers using ssl-default-server-ciphersuites
  • BUG/MINORdocBe accurate on the behavior on pool-purge-delay.
  • BUG/MEDIUMluaFully consume large requests when an HTTP applet ends
  • BUG/MINORstatsFully consume large requests in the stats applet
  • BUG/MINORcacheFully consume large requests in the cache applet
  • BUG/MEDIUMmux-h2Use the right list in h2_stop_senders().
  • BUG/MEDIUMmux-h2Don't bother keeping the h2s if detaching and nothing to send.
  • BUG/MEDIUMmux-h2Make sure we destroyed the h2s once shutr/shutw is done.
  • MINORproto-http/proto-htxMake error handling clearer during data forwarding
  • MINORmuxesReport the Last read with a dedicated flag
  • MINORmux-h2Set REFUSED_STREAM error to reset a stream if no data was never sent
  • BUG/MEDIUMmux-h2Always wakeup streams with no id to avoid frozen streams
  • BUG/MINORhttp/countersfix missing increment of fe->srv_aborts
  • BUG/MAJORstatsFix how huge POST data are read from the channel
  • BUILDMakefileresolve LEVEL before calling run-regtests
  • BUILDMakefileallow the reg-tests target to be verbose

#2019/03/19 : 1.9r1 (1.0.0-200.316)

  • BUG/MAJORspoeFix initialization of thread-dependent fields
  • BUG/MINORstatsBe more strict on what is a valid request to the stats applet
  • MINORstatsMove stuff about the stats status codes in stats files
  • MINORstatsAdd the status code STAT_STATUS_IVAL to handle invalid requests
  • BUG/MINORlua/htxDon't forget to call htx_to_buf() when appropriate
  • BUG/MINORlua/htxUse channel_add_input() when response data are added
  • BUG/MINORstats/htxCall channel_add_input() when response headers are sent
  • BUG/MINORmux-h1Don't report an error on EOS if no message was received
  • BUG/MEDIUMtasksMake sure we wake sleeping threads if needed.
  • BUG/MEDIUMthreads/fddo not forget to take into account epoll_fd/pipes
  • BUG/MAJORtasksUse the TASK_GLOBAL flag to know if we're in the global rq.
  • DOCRemove tabs and fixed punctuation.
  • MEDIUMthreadsUse __ATOMIC_SEQ_CST when using the newer atomic API.
  • BUG/MEDIUMlistenersDon't call fd_stop_recv() if fd_updt is NULL.
  • MINORfdRemove debugging code.
  • BUG/MEDIUMlistenermake sure we don't pick stopped threads
  • MINORlistenermove thr_idx from the bind_conf to the listener
  • CLEANUPlistenerremove old thread bit mapping
  • MEDIUMlistenerchange the LB algorithm again to use two round robins instead
  • MINORtoolsimplement my_flsl()
  • MINORlistenerimprove incoming traffic distribution
  • BUG/MEDIUMlistfix incorrect pointer unlocking in LIST_DEL_LOCKED()
  • MINORconfigcontinue to rely on DEFAULT_MAXCONN to set the minimum maxconn
  • MINORconfigremove obsolete use of DEFAULT_MAXCONN at various places
  • BUG/MAJORconfigWrong maxconn adjustment.

#2019/03/11 : 1.9r1 (1.0.0-197.290)

  • BUG/MINORsslfix warning about ssl-min/max-ver support
  • BUG/MEDIUMlogsOnly attempt to free startup_logs once.
  • BUG/MEDIUMh2/htxverify that :path doesn't contain invalid chars
  • MINORmux-h2always pass HTX_FL_PARSING_ERROR between h2s and buf on RX
  • MINORhtxunconditionally handle parsing errors in requests or responses
  • BUG/MAJORmux-h2fix race condition between close on both ends
  • REGTESTEnable reg tests with HEAD HTTP method usage.
  • REGTESTPeers reg tests.
  • MINORconfigrelax the range checks on cpu-map
  • BUG/MEDIUMlistfix again LIST_ADDQ_LOCKED
  • DOCupdate the text related to the global maxconn value
  • MEDIUMinitmake the global maxconn default to what rlim_fd_cur permits
  • MINORinitmove some maxsock updates earlier
  • MINORinitmake the maxpipe computation more accurate
  • REGTESTfix a spurious nbthread 4 in the connection test
  • BUG/MINORmworkerbe careful to restore the original rlim_fd_cur/max on reload
  • BUG/MINORchecksmake external-checks restore the original rlim_fd_cur/max
  • BUG/MINORinitnever lower rlim_fd_max
  • MINORglobalkeep a copy of the initial rlim_fd_cur and rlim_fd_max values
  • BUG/MEDIUMhapee/51dfix a segfault on exit when 51d configuration is not loaded
  • MINORhapee/wurfluse ci_head() in src/wurfl.c for 1.9 compatibility
  • BUILDhapee/modulesclean(up) the copts-hash file not copts_hash
  • MINORtoolsimprove the popcount() operation
  • MINORmux-h2make the H2 MAX_FRAME_SIZE setting configurable
  • MEDIUMconfigdon't enforce a low frontend maxconn value anymore
  • MINORproxydo not change the listeners' maxconn when updating the frontend's
  • MINORlistenerdo not needlessly set l->maxconn
  • MINORlistenerintroduce listener_backlog() to report the backlog value
  • BUG/MEDIUMlistcorrect fix for LIST_POP_LOCKED's removal of last element
  • MINORcfgparseAdd a cast to make gcc happier.
  • BUG/MEDIUMlistenermake sure the listener never accepts too many conns
  • BUG/MEDIUMlisteneruse a self-locked list for the dequeue lists
  • MINORserverremove a few unneeded LIST_INIT calls after LIST_DEL_LOCKED
  • MINORlistmake the delete and pop operations idempotent
  • BUG/MEDIUMlistadd missing store barriers when updating elements and head
  • BUG/MEDIUMlistfix LIST_POP_LOCKED's removal of the last pointer
  • BUG/MEDIUMlistfix the rollback on addq in the locked liss
  • MEDIUMhapee/51duse fiftyoneDegreesProvider to access the pool and dataset
  • MINORbackendmake the random algorithm support a number of draws
  • BUG/MINORconfigdon't over-count the global maxsock value
  • DOCupdate management.txt to reflect that threads are used by default
  • MAJORthreadsenable one thread per CPU by default
  • MINORconfigadd global tune.listener.multi-queue setting
  • MINORactivityadd accept queue counters for pushed and overflows
  • MAJORlisteneruse the multi-queue for multi-thread listeners
  • MINORlistenerimplement multi-queue accept for threads
  • MINORlistenerpre-compute some thread counts per bind_conf
  • MINORtoolsimplement functions to look up the nth bit set in a mask
  • MINORlistenermaintain a per-thread count of the number of connections on a listener
  • OPTIMlisteneroptimize cache-line packing for struct listener
  • MAJORlistenerdo not hold the listener lock in listener_accept()
  • BUG/MINORlistenerkeep accept rate counters accurate under saturation
  • MEDIUMserversReorganize the way idle connections are cleaned.
  • MEDIUMserversUsed a locked list for idle_orphan_conns.
  • BUG/MEDIUMlistsProperly handle the case we're removing the first elt.
  • BUG/MEDIUMh2advertise to servers that we don't support push
  • BUG/MEDIUMproto_htxFix functions applying regex filters on HTX messages
  • BUG/MINORmux-h1Always initilize h1m variable in h1_process_input()
  • BUG/MINORcache/htxReturn only the headers of cached objects to HEAD requests
  • BUG/MEDIUMcacheGet objects from the cache only for GET and HEAD requests
  • BUG/MAJORcache/htxSet the start-line offset when a cached object is served
  • MINORchannel/htxAdd function to skips output bytes from an HTX channel
  • MINORhtxAdd function to drain data from an HTX message
  • BUG/MINORchannelSet CF_WROTE_DATA when outgoing data are skipped
  • BUG/MEDIUMmux-h1Report the right amount of data xferred in h1_rcv_buf()
  • BUG/MAJORlistenerMake sure the listener exist before using it.
  • BUG/MAJORfd/threads, task/threads: ensure all spin locks are unlocked
  • BUG/MEDIUMserversAdd a per-thread counter of idle connections.
  • BUG/MEDIUMserversUse atomic operations when handling curr_idle_conns.
  • BUG/MEDIUMmux-h2/htxsend an empty DATA frame on empty HTX trailers
  • BUG/MEDIUMhtxcount the amount of copied data towards the final count
  • MEDIUMlistenerkeep a single thread-mask and warn on process misuse
  • MAJORconfigdisable support for nbproc and nbthread in parallel
  • DOCfix alphabetic ordering for tune.fail-alloc setting
  • MINORlistsImplement locked variations.
  • BUG/MINORconfigReinforce validity check when a process number is parsed
  • MINORconfigmake MAX_PROCS configurable at build time
  • MINORthreadsmake use of thread_mask() to simplify some thread calculations
  • MINORconfigsimplify bind_proc processing using proc_mask()
  • MINORglobaladd proc_mask() and thread_mask()
  • MINORconfigkeep an all_proc_mask like we have all_threads_mask
  • CLEANUPthreadsuse nbits to calculate the thread mask
  • CLEANUPthreadsfix misleading comment about all_threads_mask
  • BUG/MINORthreadsfix the process range of thread masks
  • BUG/MINORtune.fail-allocDon't forget to initialize ret.
  • MINORdebugAdd an option that causes random allocation failures.
  • MINORthreadsmake MAX_THREADS configurable at build time
  • MINORcfgparsemake the process/thread parser support a maximum value
  • CONTRIBcontrib/prometheus-exporterAdd a Prometheus exporter for HAProxy
  • BUILDmakefileadd an EXTRA_OBJS variable to help build optional code
  • MINORmux-h2Set HTX extra value when possible
  • BUG/MEDIUMh2/htxCorrectly handle interim responses when HTX is enabled
  • BUG/MINORproto-htxConsider a XFER_LEN message as chunked by default
  • BUG/MINORmux-h2Don't add :status pseudo-header on trailers
  • BUG/MINORmux-h1Add transfer-encoding header on outgoing requests if needed
  • MINORh2/htxSet the flag HTX_SL_F_BODYLESS for messages without body
  • BUG/MEDIUMmux-h2/htxAlways set CS flags before exiting h2_rcv_buf()
  • BUILD/MEDIUMinitcallFix build on MacOS.
  • BUG/MEDIUMhttp_fetchfix req.body_len and req.body_size fetch methods in HTX mode
  • BUG/MEDIUMproto_htxFix data size update if end of the cookie is removed
  • MEDIUM51dEnabled multi threaded operation in the 51Degrees module.
  • BUG/MINORhapee/modulesdisplay detailed error message on mod_init() failure
  • BUG/MEDIUMhttp_fetchfix the base and base32 fetch methods in HTX mode
  • BUILD/MINORhtxfix some potential null-deref warnings with http_find_stline
  • BUILD/MINORpeersremove an impossible null test in intencode()
  • BUILD/MINORtoolsfix build warning in the date conversion functions
  • BUILD/MINORstreamavoid a build warning with threads disabled
  • BUG/MAJORstreamavoid double free on unique_id
  • BUG51dIn Hash Trie, multi header matching was affected by the header names stored globaly.
  • BUG/MINORmux-h1verify the request's version before dropping connection: keep-alive
  • BUG/MINORconfigReinforce validity check when a process number is parsed
  • BUG/MAJORspoeDon't try to get agent config during SPOP healthcheck
  • BUG/MEDIUMserverinitialize the orphaned conns lists and tasks at the end
  • CLEANUPserverfix indentation mess on idle connections
  • BUG/MEDIUMserverinitialize the idle conns list after parsing the config
  • BUG/MEDIUMspoeinitialization depending on nbthread must be done last
  • BUG/MINORluainitialize the correct idle conn lists for the SSL sockets
  • BUG/MINORspoedo not assume agent->rt is valid on exit
  • DOCsslStop documenting ciphers example to use
  • DOCsslClarify when pre TLSv1.3 cipher can be used
  • BUG/MINORconfigmake sure to count the error on incorrect track-sc/stick rules
  • BUG/MAJORhtx/backendMake all tests on HTTP messages compatible with HTX
  • MEDIUMbackendmove all LB algo parameters into an union
  • MINORbackendmove hash_balance_factor out of chash
  • MINORbackendremap the balance uri settings to lbprm.arg_opt{1,2,3}
  • MINORbackendmake the header hash use arg_opt1 for use_domain_only
  • MINORbackendadd new fields in lbprm to store more LB options
  • MINORbackendmake headers and RDP cookie also use arg_str/len
  • MINORbackendmove url_param_name/len to lbprm.arg_str/len
  • BUG/MAJORspoeverify that backends used by SPOE cover all their callers' processes
  • BUG/MAJORconfigverify that targets of track-sc and stick rules are present
  • BUG/MINORtaskclose a tiny race in the inter-thread wakeup
  • BUG/MINORcompressionproperly report compression stats in HTX mode
  • BUG/MINORconfigfix bind line thread mask validation
  • BUG/MEDIUMstreamDon't forget to free s->unique_id in stream_free().
  • BUG/MEDIUMmux-h2always set :authority on request output
  • BUG/MEDIUMmux-h2always omit :scheme and :path for the CONNECT method
  • BUG/MINORbackendcheck srv_conn before dereferencing it
  • BUG/MEDIUMhtxcheck the HTX compatibility in dynamic use-backend rules
  • BUG/MEDIUMbackendalways release the previous connection into its own target srv_list
  • BUG/MEDIUMmux-h2properly consider the peer's advertised max-concurrent-streams
  • MINORmux-h2learn and store the peer's advertised MAX_CONCURRENT_STREAMS setting
  • MINORmux-h2make sure to only check concurrency limit on the frontend
  • MINORmux-h2max-concurrent-streams should be unsigned
  • BUG/MEDIUMmux-h2do not close the connection on aborted streams
  • MINORconnstreamhave a new flag CS_FL_KILL_CONN to kill a connection
  • MINORstream-intadd a new flag to mention that we want the connection to be killed
  • BUG/MEDIUMmux-h2wait for the mux buffer to be empty before closing the connection
  • MINORmux-h2consistently rely on the htx variable to detect the mode
  • BUG/MINORmux-h2make sure request trailers on aborted streams don't break the connection
  • CLEANUPmux-h2remove stream ID and frame length checks from the frame parsers
  • CLEANUPmux-h2clean the stream error path on HEADERS frame processing
  • CLEANUPmux-h2remove misleading leftover test on h2s' nullity
  • MEDIUMmux-h2check the frame validity before considering the stream state
  • MINORh2add a generic frame checker
  • BUG/MINORmux-h2make sure response HEADERS are not received in other states than OPEN and HLOC
  • BUG/MEDIUMmux-h2do not abort HEADERS frame before decoding them
  • BUG/MEDIUMmux-h2make sure never to send GOAWAY on too old streams
  • BUG/MEDIUMmux-h2fix two half-closed to closed transitions
  • BUG/MEDIUMmux-h2wake up flow-controlled streams on initial window update
  • BUG/MEDIUMmux-h2only close connection on request frames on closed streams
  • BUG/MINORmux-h2always compare content-length to the sum of DATA frames
  • MEDIUMh2always parse and deduplicate the content-length header
  • MINORstreamdon't wait before retrying after a failed connection reuse
  • MEDIUMstream-intalways mark pending outgoing SI_ST_CON
  • MINORhtxnever check for null htx pointer in htx_is_{,not_}empty()
  • DOChtxmake it clear that htxbuf() and htx_from_buf() always return valid pointers
  • BUG/MEDIUMbufferMake sure b_is_null handles buffers waiting for allocation.
  • BUG/MEDIUMserversClose the connection if we failed to install the mux.
  • BUG/MEDIUMh2In h2_send(), stop the loop if we failed to alloc a buf.
  • BUG/MEDIUMchecksDon't try to set ALPN if connection failed.
  • BUG/MEDIUMserversDon't add an incomplete conn to the server idle list.
  • BUG/MEDIUMserversOnly destroy a conn_stream we just allocated.
  • BUG/MEDIUMchecksCheck that conn_install_mux succeeded.
  • BUG/MEDIUMpeersHandle mux creation failure.
  • MINORxrefAdd missing barriers.
  • BUG/MINORstreamdon't close the front connection when facing a backend error
  • BUG/MINORserverfix logic flaw in idle connection list management
  • BUG/MEDIUMconnectionsDon't forget to remove CO_FL_SESS_IDLE.
  • SCRIPTSadd the issue tracker URL to the announce script
  • DOCadd a missing space in the documentation for bc_http_major
  • BUG/MINORdeinittcp_rep.inspect_rules not deinit, add to deinit
  • DOCcompressionUpdate the reasons for disabled compression
  • BUG/MEDIUMcompressionRewrite strong ETags
  • BUG/MEDIUMmux-h1Don't add transfer-encoding if message-body is forbidden
  • BUG/MEDIUMbackendalways call si_detach_endpoint() on async connection failure
  • BUG/MEDIUMserversAttempt to reuse an unfinished connection on retry.
  • BUG/MINORtaskfix possibly missed event in inter-thread wakeups
  • BUG/MINORspoecorrected fragmentation string size
  • BUG/MINORmux-h2do not report available outgoing streams after GOAWAY
  • BUG/MINORlisteneralways fill the source address for accepted socketpairs
  • DOCnbthread is no longer experimental.
  • MINORmux-h2always consider a server's max-reuse parameter
  • MINORserveradd a max-reuse parameter
  • BUG/MEDIUMbackendnever try to attach to a mux having no more stream available
  • BUG/MINORmux-h2refuse to allocate a stream with too high an ID
  • BUG/MINORmux-h2always check the stream ID limit in h2_avail_streams()
  • BUG/MINORstreamtake care of synchronous errors when trying to send
  • MINORservermake sure pool-max-conn is >= -1
  • BUG/MINORhpackreturn a compression error on invalid table size updates
  • BUG/MINORmux-h2make it possible to set the error code on an already closed stream
  • BUG/MINORmux-h2headers-type frames in HREM are always a connection error
  • BUG/MINORmux-h2CONTINUATION in closed state must always return GOAWAY
  • MINORh2declare new sets of frame types
  • BUG/MEDIUMmux-h2properly abort on trailers decoding errors
  • BUG/MEDIUMbackendalso remove from idle list muxes that have no more room
  • BUG/MAJORmux-h2don't destroy the stream on failed allocation in h2_snd_buf()
  • BUG/MINORmux-h1avoid copying output over itself in zero-copy
  • BUG/MINORmux-h1Apply the reserve on the channel's buffer only
  • BUG/MEDIUMmux-h2/htxRespect the channel's reserve
  • BUG/MINORproto-htxReturn an error if all headers cannot be received at once
  • DOCmention the effect of nf_conntrack_tcp_loose on src/dst
  • BUG/MEDIUMsslFix handling of TLS 1.3 KeyUpdate messages
  • BUG/MINORcheckWake the check task if the check is finished in wake_srv_chk()
  • BUG/MINORserverdon't always trust srv_check_health when loading a server state
  • BUG/MINORstartupcertain goto paths in init_pollers fail to free
  • BUG/MEDIUMconnectionsAdd the CO_FL_CONNECTED flag if a send succeeded.
  • BUG/MEDIUMserversMake assign_tproxy_address work when ALPN is set.
  • BUG/MEDIUMchecksfix recent regression on agent-check making it crash
  • REGTESTchecks basic stats webpage functionality
  • BUG/MEDIUMstatsGet the right scope pointer depending on HTX is used or not
  • BUG51dChanges to the buffer API in 1.9 were not applied to the 51Degrees code.
  • MEDIUMmux-h2emit HEADERS frames when facing HTX trailers blocks
  • BUG/MEDIUMh1Get the h1m state when restarting the headers parsing
  • MINORh1make the H1 headers block parser able to parse headers only
  • MINORmux-h2make HTX_BLK_EOM processing idempotent
  • MEDIUMmux-h2pass trailers to HTX
  • MINORh2add h2_make_htx_trailers to turn H2 headers to HTX trailers
  • MINORhtxadd a new function to add a block without filling it
  • MEDIUMmux-h2pass trailers to H1 (legacy mode)
  • MINORh2add h2_make_h1_trailers to turn H2 headers to H1 trailers
  • BUG/MEDIUMmux-h2decode trailers in HEADERS frames
  • MINORmux-h2set H2_SF_HEADERS_RCVD when a HEADERS frame was decoded
  • MINORmux-h2check for too many streams only for idle streams
  • BUG/MINORmux-h2detect when the HTX EOM block cannot be added after headers
  • MEDIUMmux-h2make h2c_decode_headers() support recoverable errors
  • MINORmux-h2add a new dummy stream : h2_error_stream
  • MINORmux-h2make h2c_decode_headers() return a status, not a count
  • BUG/MINORmux-h2only update rxbuf's length for H1 headers
  • BUG/MINORmux-h2mark end-of-stream after processing response HEADERS, not before
  • BUG/MINORmux-h2set the stream-full flag when leaving h2c_decode_headers()
  • MEDIUMmux-h2handle decoding of CONTINUATION frames
  • MINORmux-h2make h2_peek_frame_hdr() support an offset
  • MINORbuffersadd a new b_move() function
  • MINORmux-h2fail stream creation more cleanly using RST_STREAM
  • MINORmux-h2add a new dummy stream for the REFUSED_STREAM error code
  • MINORmux-h2make h2c_send_rst_stream() use the dummy stream's error code
  • MEDIUMmux-h2decode HEADERS frames before allocating the stream
  • MINORmux-h2remove useless check for empty frame length in h2s_decode_headers()
  • MEDIUMmux-h2remove padlen during headers phase
  • MINORh2add a bit-based frame type representation
  • MINORspoeMake the SPOE filter compatible with HTX proxies
  • BUG/MINORstick_tablePrevent conn_cur from underflowing
  • BUILD/MEDIUMdaNecessary code changes for new buffer API.
  • REGTESTAdapt reg test doc files to vtest.
  • REGTESTSwitch to vtest.
  • DOCREGTESTS README varnishtest -Dno-htx= define.
  • REGTESTSBasic tests for using maps to redirect requests / select backend
  • REGTESTSBasic tests for concat,strcmp,word,field,ipmask converters
  • REGTESTStest case for map_regm commit 271022150d
  • REGTESTfiltersadd compression test
  • REGTESTcapture (request|response) regtest.
  • BUG/MINORbackendBE_LB_LKUP_CHTREE is a value, not a bit
  • BUG/MINORbackendbalance uri specific options were lost across defaults
  • BUG/MINORbackenddon't use url_param_name as a hint for BE_LB_ALGO_PH
  • DOCBe a bit more explicit about allow-0rtt security implications.
  • BUG/MEDIUMsslDisable anti-replay protection and set max data with 0RTT.
  • BUG/MINORlua/htxRespect the reserve when data are send from an HTX applet
  • BUG/MEDIUMchecksAvoid having an associated server for email checks.
  • MINORchecksStore the proxy in checks.
  • BUG/MEDIUMconnectionproperly unregister the mux on failed initialization
  • BUG/MEDIUMinitInitialize idle_orphan_conns for first server in server-template
  • MEDIUMsessionsKeep track of which connections are idle.
  • BUG/MEDIUMh1Make sure we destroy an inactive connectin that did shutw.
  • BUG/MAJORcachefix confusion between zero and uninitialized cache key
  • MINORssladd support of aes256 bits ticket keys on file and cli.
  • BUG/MEDIUMsslmissing allocation failure checks loading tls key file
  • BUG/MINORbase64dec func ignores padding for output size checking
  • MINORhapee/modulesadd a new label MODULES_LOCK to the lock_label enum
  • MINORhapee/modulesadd the ability to register variable and functions.
  • MEDIUMhapee/modules'modules list' on the cli shows currently loaded modules
  • MINORhapee/modulesterminate properly loaded modules if possible
  • MINORhapee/modulesregister function called after the main config check
  • MEDIUMhapee/modulesadd memory reservation support for the modules
  • BUILDhapee/modulesupdate HAPEE version macro to 1.9r1
  • BUILDhapee/modulesadd macros to compute numerical value of a HAPEE version
  • BUILDhapee/modulesadd version of the module in the defines
  • MEDIUMhapee/modulesadd modules support