]> git.ipfire.org Git - thirdparty/haproxy.git/log
thirdparty/haproxy.git
18 years ago[BUILD] make clean did not work on anything but bash
Willy Tarreau [Sun, 15 Oct 2006 21:40:58 +0000 (23:40 +0200)] 
[BUILD] make clean did not work on anything but bash

18 years ago[BUILD] replaced u_int32_t with unsigned int.
Willy Tarreau [Sun, 15 Oct 2006 21:32:18 +0000 (23:32 +0200)] 
[BUILD] replaced u_int32_t with unsigned int.

Linux and BSD know about u_int32_t, while Solaris knows about uint32_t.
This is getting boring and unsigned int perfectly fits the goal for the
moment. Further investigation will be performed anyway.

18 years ago[BUILD] types/proxy.h: reorder a few includes.
Willy Tarreau [Sun, 15 Oct 2006 21:18:47 +0000 (23:18 +0200)] 
[BUILD] types/proxy.h: reorder a few includes.

OpenBSD is very sensible on the order of includes :
sys/types.h, sys/socket.h, netinet/in.h and arpa/inet.h must be
included in this exact order.

18 years ago[CLEANUP] fd.c : regparm was hardcoded too.
Willy Tarreau [Sun, 15 Oct 2006 21:10:10 +0000 (23:10 +0200)] 
[CLEANUP] fd.c : regparm was hardcoded too.

18 years ago[BUILD] <stdint> is not present on OpenBSD. Prefer <sys/types.h>
Willy Tarreau [Sun, 15 Oct 2006 20:57:13 +0000 (22:57 +0200)] 
[BUILD] <stdint> is not present on OpenBSD. Prefer <sys/types.h>

18 years ago[CLEANUP] fd.h : regparm was hardcoded.
Willy Tarreau [Sun, 15 Oct 2006 20:56:02 +0000 (22:56 +0200)] 
[CLEANUP] fd.h : regparm was hardcoded.

18 years ago[CLEANUP] added the correct cast to call localtime()
Willy Tarreau [Sun, 15 Oct 2006 20:54:47 +0000 (22:54 +0200)] 
[CLEANUP] added the correct cast to call localtime()

Calling localtime() with a timeval.tv_sec causes a warning on
OpenBSD where the tv_sec is declared long.

18 years ago[MEDIUM] use regparm on a few tv_* functions
Willy Tarreau [Sun, 15 Oct 2006 13:38:50 +0000 (15:38 +0200)] 
[MEDIUM] use regparm on a few tv_* functions

Some of the tv_* functions are called very often. Passing their
arguments as registers is quite faster. This can be disabled
by setting CONFIG_HAP_DISABLE_REGPARM.

18 years ago[MEDIUM] remove useless calls to gettimeofday()
Willy Tarreau [Sun, 15 Oct 2006 13:25:48 +0000 (15:25 +0200)] 
[MEDIUM] remove useless calls to gettimeofday()

send_log(), Alert() and Warning() used gettimeofday() while using
<now> should have been preferred.

18 years ago[CLEANUP] add a few "const char *" where appropriate
Willy Tarreau [Sun, 15 Oct 2006 13:17:57 +0000 (15:17 +0200)] 
[CLEANUP] add a few "const char *" where appropriate

As suggested by Markus Elfring, a few "const char *" have replaced
some "char *" declarations where a function is not expected to
modify a value. It does not change the code but it helps detecting
coding errors.

18 years ago[CLEANUP] add a few checks for functions return values
Willy Tarreau [Sun, 15 Oct 2006 12:59:03 +0000 (14:59 +0200)] 
[CLEANUP] add a few checks for functions return values

Markus Elfring suggested adding a few checks which were missing
after a bunch of getsockopt() and 2 strdup(). While those are
unlikely to fail where they are used, it makes the code cleaner.

18 years ago[MINOR] turn every FD_* into functions
Willy Tarreau [Sun, 15 Oct 2006 12:52:29 +0000 (14:52 +0200)] 
[MINOR] turn every FD_* into functions

On recent CPUs, functions are about twice as fast as inline FD_*, so
there is now a #define CONFIG_HAP_INLINE_FD_SET to choose between the
two modes.

18 years ago[MEDIUM] fix broken redispatch option
Willy Tarreau [Sun, 15 Oct 2006 12:26:02 +0000 (14:26 +0200)] 
[MEDIUM] fix broken redispatch option

Since the connection queueing was introduced, the "redispatch"
option could not cover the cases where a connection has been
refused by the server after having been marked "in progress".
The fix consists in doing a redispatch in the delayed connection
handling code.

Problem reported by Konrad Rzentarzewski.

18 years ago[BUILD] added the 'git-tar' target to the Makefile
Willy Tarreau [Sun, 15 Oct 2006 12:24:14 +0000 (14:24 +0200)] 
[BUILD] added the 'git-tar' target to the Makefile

Now, doing a "make git-tar" will automaticall build the tar.gz archive
from the versionned tree.

18 years ago[RELEASE] released 1.3.2 v1.3.2
Willy Tarreau [Sun, 3 Sep 2006 09:23:06 +0000 (11:23 +0200)] 
[RELEASE] released 1.3.2

    - started the changes towards I/O completion callbacks. stream_sock* have
      replaced event_*.
    - added the new "reqtarpit" and "reqitarpit" protection features

18 years ago[MINOR] tarpit: close the connection if the client closes.
Willy Tarreau [Sun, 3 Sep 2006 08:47:37 +0000 (10:47 +0200)] 
[MINOR] tarpit: close the connection if the client closes.

There's no point at maintaining an open tarpitted connection
if the client has left.

18 years ago[DOC] add docs and examples of tarpit configuration
Willy Tarreau [Sun, 3 Sep 2006 08:19:38 +0000 (10:19 +0200)] 
[DOC] add docs and examples of tarpit configuration

18 years ago[MEDIUM] added the "reqtarpit" and "reqitarpit" features
Willy Tarreau [Sun, 3 Sep 2006 07:56:00 +0000 (09:56 +0200)] 
[MEDIUM] added the "reqtarpit" and "reqitarpit" features

It is now possible to tarpit connections based on regex matches.
The tarpit timeout is equal to the contimeout. A 500 server error
response is faked, and the logs show the status flags as "PT" which
indicate the connection has been tarpitted.

18 years ago[MEDIUM] got rid of event_{cli,srv}_write() in favor of stream_sock_write()
Willy Tarreau [Sat, 29 Jul 2006 17:01:31 +0000 (19:01 +0200)] 
[MEDIUM] got rid of event_{cli,srv}_write() in favor of stream_sock_write()

The timeouts, expiration timers and results are now stored in the buffers.
The timers will have to change a bit to become more flexible, and when the
I/O completion functions will be written, the connect_complete() will have
to be extracted from the write() function.

18 years ago[MEDIUM] got rid of event_{cli,srv}_read() in favor of stream_sock_read()
Willy Tarreau [Sat, 29 Jul 2006 16:36:34 +0000 (18:36 +0200)] 
[MEDIUM] got rid of event_{cli,srv}_read() in favor of stream_sock_read()

18 years ago[MEDIUM] removed all res_* and RES_*
Willy Tarreau [Sat, 29 Jul 2006 15:39:25 +0000 (17:39 +0200)] 
[MEDIUM] removed all res_* and RES_*

The read-, write-, end- and error- status are now stored in the buffer.

18 years ago[MEDIUM] started the changes towards I/O completion callbacks
Willy Tarreau [Sat, 29 Jul 2006 14:59:06 +0000 (16:59 +0200)] 
[MEDIUM] started the changes towards I/O completion callbacks

Now the event_* functions find their buffer in the fdtab itself.

18 years ago[TESTS] added two new test configurations
Willy Tarreau [Sat, 29 Jul 2006 14:47:12 +0000 (16:47 +0200)] 
[TESTS] added two new test configurations

- one for basic features
- one for httpterm

19 years ago[RELEASE] released 1.3.1 after resyncing with 1.2.15 v1.3.1
Willy Tarreau [Sun, 9 Jul 2006 15:11:39 +0000 (17:11 +0200)] 
[RELEASE] released 1.3.1 after resyncing with 1.2.15

Released 1.3.1 with the following changes from 1.2.15 :
   - now, haproxy warns about missing timeout during startup to try to
     eliminate all those buggy configurations.
   - added "Content-Type: text/html" in responses wherever appropriate, as
     suggested by Cameron Simpson.
   - implemented "option ssl-hello-chk" to use SSLv3 CLIENT HELLO messages to
     test server's health
   - implemented "monitor-uri" so that haproxy can reply to a specific URI with
     an "HTTP/1.0 200 OK" response. This is useful to validate multiple proxies
     at once.

19 years ago[DOC] provided an example of configuration involving URL switching.
Willy Tarreau [Sun, 9 Jul 2006 07:08:05 +0000 (09:08 +0200)] 
[DOC] provided an example of configuration involving URL switching.

19 years ago[MEDIUM] implemented the 'monitor-uri' keyword.
Willy Tarreau [Sun, 9 Jul 2006 06:22:27 +0000 (08:22 +0200)] 
[MEDIUM] implemented the 'monitor-uri' keyword.

It is used to test haproxy's status with an HTTP request to which
it will reply with HTTP/1.0 200 OK.

19 years ago[MEDIUM] implement 'option ssl-hello-chk' to use CLIENT HELLO health checks.
Willy Tarreau [Sun, 9 Jul 2006 14:42:34 +0000 (16:42 +0200)] 
[MEDIUM] implement 'option ssl-hello-chk' to use CLIENT HELLO health checks.

This makes it possible to relay SSL connections in pure TCP instances while
ensuring the remote end really receives our data eventhough intermediate
agents (firewalls, proxies, ...) might acknowledge the connection.

19 years ago[MEDIUM] now upon startup, haproxy will warn about missing timeouts.
Willy Tarreau [Sat, 8 Jul 2006 15:28:09 +0000 (17:28 +0200)] 
[MEDIUM] now upon startup, haproxy will warn about missing timeouts.

Too many problem reports were caused by missing timeouts. While
there has never been any default value since version 1.0, having
no timeout is abnormal in networked environments, and will lead
to various problems such as CLOSE_WAIT sockets accumulating and
nasty things like this. For this reason, it's better to annoy
the users until they fix their configs than letting them run
buggy configurations.

19 years ago[MINOR] added lots of Content-Type: text/html to HTML responses and stats.
Willy Tarreau [Sat, 8 Jul 2006 14:53:38 +0000 (16:53 +0200)] 
[MINOR] added lots of Content-Type: text/html to HTML responses and stats.

This suggestion from Cameron Simpson is perfectly valid and should have been
implemented from the beginning.

19 years ago[RELEASE] version 1.3.0 v1.3.0
Willy Tarreau [Mon, 3 Jul 2006 08:32:46 +0000 (10:32 +0200)] 
[RELEASE] version 1.3.0

Released version 1.3.0 which differs from 1.2.14 only by the fact
that the code is now classed in multiple .c and .h files.

19 years ago[CLEANUP] included common/version.h everywhere
Willy Tarreau [Thu, 29 Jun 2006 16:54:54 +0000 (18:54 +0200)] 
[CLEANUP] included common/version.h everywhere

19 years ago[CLEANUP] renamed include/haproxy to include/common
Willy Tarreau [Thu, 29 Jun 2006 15:53:05 +0000 (17:53 +0200)] 
[CLEANUP] renamed include/haproxy to include/common

19 years ago[BIGMOVE] exploded the monolithic haproxy.c file into multiple files.
Willy Tarreau [Mon, 26 Jun 2006 00:48:02 +0000 (02:48 +0200)] 
[BIGMOVE] exploded the monolithic haproxy.c file into multiple files.

The files are now stored under :
  - include/haproxy for the generic includes
  - include/types.h for the structures needed within prototypes
  - include/proto.h for function prototypes and inline functions
  - src/*.c for the C files

Most include files are now covered by LGPL. A last move still needs
to be done to put inline functions under GPL and not LGPL.

Version has been set to 1.3.0 in the code but some control still
needs to be done before releasing.

19 years ago[BUILD] fixed build on alpha-linux + epoll
Willy TARREAU [Fri, 16 Jun 2006 22:04:47 +0000 (00:04 +0200)] 
[BUILD] fixed build on alpha-linux + epoll

19 years ago[LICENSE] licensing clarifications
Willy TARREAU [Thu, 15 Jun 2006 19:48:13 +0000 (21:48 +0200)] 
[LICENSE] licensing clarifications

19 years ago[BUG] neither stats nor error messages could be returned without clitimeout
willy tarreau [Tue, 13 Jun 2006 17:28:58 +0000 (19:28 +0200)] 
[BUG] neither stats nor error messages could be returned without clitimeout

19 years ago[DOC] renamed 'haproxy' instead of 'ha-proxy' or 'h a p r o x y'
Willy Tarreau [Wed, 31 May 2006 04:40:15 +0000 (06:40 +0200)] 
[DOC] renamed 'haproxy' instead of 'ha-proxy' or 'h a p r o x y'

File indexation systems (including search engines) did not read
'haproxy' when needed, which made it more difficult to find the
doc on the net.

19 years ago[RELEASE] released 1.2.14 v1.2.14
willy tarreau [Sun, 21 May 2006 21:26:20 +0000 (23:26 +0200)] 
[RELEASE] released 1.2.14

Released 1.2.14 with the following changes :

   - new HTML status report with the 'stats' keyword.
   - added the 'abortonclose' option to better resist traffic surges
   - implemented dynamic traffic regulation with the 'minconn' option
   - show request time on denied requests
   - definitely fixed hot reconf on OpenBSD by the use of SO_REUSEPORT
   - now a proxy instance is allowed to run without servers, which is
     useful to dedicate one instance to stats
   - added lots of error counters
   - a missing parenthesis preventd matching of cacheable cookies
   - a missing parenthesis in poll_loop() might have caused missed events.

19 years ago[DOC] french doc update
willy tarreau [Sun, 21 May 2006 21:05:54 +0000 (23:05 +0200)] 
[DOC] french doc update

19 years ago[MINOR] display "<STATS>" in the logs for statistics access.
willy tarreau [Sun, 21 May 2006 20:08:00 +0000 (22:08 +0200)] 
[MINOR] display "<STATS>" in the logs for statistics access.

19 years ago[MINOR] always ensure that minconn < maxconn or override it.
willy tarreau [Sun, 21 May 2006 20:07:31 +0000 (22:07 +0200)] 
[MINOR] always ensure that minconn < maxconn or override it.

19 years ago[DOC] add some informations about 'stats' and 'option httpclose'.
willy tarreau [Sun, 21 May 2006 19:54:14 +0000 (21:54 +0200)] 
[DOC] add some informations about 'stats' and 'option httpclose'.

19 years agoMerge branch 'abort-close' into merge
willy tarreau [Sun, 21 May 2006 19:43:58 +0000 (21:43 +0200)] 
Merge branch 'abort-close' into merge

19 years ago[DOC] documented the 'stats' parameter.
willy tarreau [Sun, 21 May 2006 19:43:10 +0000 (21:43 +0200)] 
[DOC] documented the 'stats' parameter.

19 years agoMerge branch 'minconn' into abort-close
willy tarreau [Sun, 21 May 2006 19:11:03 +0000 (21:11 +0200)] 
Merge branch 'minconn' into abort-close

19 years ago[MAJOR] implemented the 'minconn' server parameter for dynamic load regulation
willy tarreau [Sun, 21 May 2006 19:09:55 +0000 (21:09 +0200)] 
[MAJOR] implemented the 'minconn' server parameter for dynamic load regulation
When 'minconn' is set, the number of simultaneous sessions sent to the server
will be limited by a dynamic value depending on the global load on the
instance itself. The principle is to fix the maximal concurrency on the server
proportionnally to the instance's usage relative to its maxconn, with a minimum
fixed to <minconn>. The formula for the number of simultaneous sessions sent
to the server is then max(srv_minconn, srv_maxconn*px_conn/px_maxconn). This
helps unloading the servers when the load is very low.

19 years ago[DOC] documented the 'abortonclose' option
willy tarreau [Sun, 21 May 2006 18:51:54 +0000 (20:51 +0200)] 
[DOC] documented the 'abortonclose' option

19 years ago[MEDIUM] added the 'abortonclose' option.
willy tarreau [Sun, 21 May 2006 16:26:53 +0000 (18:26 +0200)] 
[MEDIUM] added the 'abortonclose' option.

When this option is enabled, a session will be destroyed immediately if
a client closes during ST_IDLE or ST_CONN states.

19 years ago[MAJOR] missing parenthesis in poll_loop() might have caused missed events.
willy tarreau [Sun, 21 May 2006 14:26:20 +0000 (16:26 +0200)] 
[MAJOR] missing parenthesis in poll_loop() might have caused missed events.

19 years ago[MAJOR] missing parenthesis prevented matching of cacheable cookies !
willy tarreau [Sun, 21 May 2006 14:24:15 +0000 (16:24 +0200)] 
[MAJOR] missing parenthesis prevented matching of cacheable cookies !

19 years ago[MEDIUM] added counters for connect/response/security errors
willy tarreau [Sun, 21 May 2006 14:23:22 +0000 (16:23 +0200)] 
[MEDIUM] added counters for connect/response/security errors

19 years ago[MINOR] allow a proxy instance to run without any server (useful for stats)
willy tarreau [Sun, 21 May 2006 12:47:13 +0000 (14:47 +0200)] 
[MINOR] allow a proxy instance to run without any server (useful for stats)

19 years ago[MEDIUM] the stats dump FSM was buggy and looped on dispatch instances.
willy tarreau [Sun, 21 May 2006 12:46:15 +0000 (14:46 +0200)] 
[MEDIUM] the stats dump FSM was buggy and looped on dispatch instances.

It has been rewritten and now supports an initialization state. It now also
prevents from dumping stopped(disabled) listeners and it is possible to
specify a scope with a list of proxies that are allowed to be dumped from
the one being configured ('.' meaning "this one"). The 'stats' entry can
be configured from the 'defaults' instance and it is correctly flushed
from proxies which redefine it.

19 years ago[MEDIUM] hopefully definitely fixed hot-reconf for OpenBSD
willy tarreau [Sun, 21 May 2006 08:20:28 +0000 (10:20 +0200)] 
[MEDIUM] hopefully definitely fixed hot-reconf for OpenBSD

19 years ago[MINOR] cosmetic changes in the stats interface
willy tarreau [Sun, 21 May 2006 06:58:06 +0000 (08:58 +0200)] 
[MINOR] cosmetic changes in the stats interface

19 years ago[CRITICAL] potential NULL dereference when counting stats in dispatch mode
willy tarreau [Sun, 21 May 2006 06:32:50 +0000 (08:32 +0200)] 
[CRITICAL] potential NULL dereference when counting stats in dispatch mode

19 years ago[MINOR] also set request time on denied requests
willy tarreau [Wed, 17 May 2006 23:25:36 +0000 (01:25 +0200)] 
[MINOR] also set request time on denied requests

19 years ago[MINOR] set request time even for stats requests
willy tarreau [Wed, 17 May 2006 23:23:51 +0000 (01:23 +0200)] 
[MINOR] set request time even for stats requests

19 years ago[BUILD] updated Makefile.bsd for the new files
willy tarreau [Wed, 17 May 2006 23:22:27 +0000 (01:22 +0200)] 
[BUILD] updated Makefile.bsd for the new files

19 years ago[MEDIUM] completed HTML status output, fixed some rendering bugs.
willy tarreau [Wed, 17 May 2006 22:52:35 +0000 (00:52 +0200)] 
[MEDIUM] completed HTML status output, fixed some rendering bugs.

Removed one missed debugging write(), fixed buffer management.
Now the HTML table output uses a color code with a caption. Some
more statistics have been collected such as maximum values reached
and failed health checks. Null limits now show "-" instead of "0".

19 years ago[MEDIUM] first working code for an HTML status report.
willy tarreau [Mon, 15 May 2006 01:02:46 +0000 (03:02 +0200)] 
[MEDIUM] first working code for an HTML status report.

19 years ago[DOC] missing comment caused misinterpretation
willy tarreau [Sun, 14 May 2006 21:29:47 +0000 (23:29 +0200)] 
[DOC] missing comment caused misinterpretation

19 years ago[DEBUG] state names were shifted due to missing PEND state.
willy tarreau [Sun, 14 May 2006 21:20:07 +0000 (23:20 +0200)] 
[DEBUG] state names were shifted due to missing PEND state.

19 years ago[MEDIUM] added the new 'stats' keyword with user authentication subsystem.
willy tarreau [Sun, 14 May 2006 21:06:28 +0000 (23:06 +0200)] 
[MEDIUM] added the new 'stats' keyword with user authentication subsystem.

Right now it only validates the user/passwd according to a specified list,
and lets the user pass through the proxy if the authentication is OK, and
it refuses any invalid access with a 401 Unauthorized response.

19 years ago[RELEASE] released version 1.2.13.1 v1.2.13.1
Willy TARREAU [Sun, 14 May 2006 08:00:09 +0000 (10:00 +0200)] 
[RELEASE] released version 1.2.13.1
   - an uninitialized field in the struct session could cause a crash when
     the session was freed. This has been encountered on Solaris only.
   - Solaris and OpenBSD no not support shutdown() on listening socket. Let's
     be nice to them by performing a soft stop if pause fails.

19 years ago[MEDIUM] perform a soft stop when pause fails to be nice with non-Linux systems.
Willy TARREAU [Sun, 14 May 2006 07:55:23 +0000 (09:55 +0200)] 
[MEDIUM] perform a soft stop when pause fails to be nice with non-Linux systems.

At least OpenBSD and Solaris do not support shutdown() on listening socket.
So instead of blocking the hot reconfiguration, at least we can perform a
soft stop if the shutdown fails, so that the new daemon can bind to the
ports without trouble.

19 years ago[CRITICAL] fixed an uninitialized 'pend_pos' field in struct session.
Willy TARREAU [Sun, 14 May 2006 07:10:03 +0000 (09:10 +0200)] 
[CRITICAL] fixed an uninitialized 'pend_pos' field in struct session.

This might cause random crashes when memory is not initialized first.
Encountered on Solaris 8 only for now, OpenBSD and Linux seem unaffected.

19 years ago[RELEASE] released version 1.2.13 v1.2.13
willy tarreau [Sat, 13 May 2006 16:51:38 +0000 (18:51 +0200)] 
[RELEASE] released version 1.2.13

Summary of changes :
   - 'maxconn' server parameter to do per-server session limitation
   - queueing to support non-blocking session limitation
   - fixed removal of cookies for cookie-less servers such as backup servers
   - two separate wait queues for expirable and non-expirable tasks provide
     better performance with lots of sessions.
   - some code cleanups and performance improvements
   - made state dumps a bit more verbose
   - fixed missing checks for NULL srv in dispatch mode
   - load balancing on backup servers was not possible in source hash mode.
   - two session flags shared the same bit, but fortunately they were not
     compatible.

19 years ago[DOC] update documentation to explain the server's maxconn
willy tarreau [Sat, 13 May 2006 16:40:37 +0000 (18:40 +0200)] 
[DOC] update documentation to explain the server's maxconn

19 years ago[MINOR] the queue time was missing from TCP logs.
willy tarreau [Sat, 13 May 2006 16:37:04 +0000 (18:37 +0200)] 
[MINOR] the queue time was missing from TCP logs.

19 years ago[MINOR] do not report queue time if not queued !
willy tarreau [Sat, 13 May 2006 14:08:47 +0000 (16:08 +0200)] 
[MINOR] do not report queue time if not queued !

19 years ago[DOC] added (and updated) the ROADMAP file
willy tarreau [Sat, 13 May 2006 11:00:29 +0000 (13:00 +0200)] 
[DOC] added (and updated) the ROADMAP file

19 years ago[MINOR] make logs more accurate about expiration and close during queue.
willy tarreau [Sat, 13 May 2006 10:23:58 +0000 (12:23 +0200)] 
[MINOR] make logs more accurate about expiration and close during queue.

19 years ago[MINOR] separately display the server and proxy queue sizes in the logs
willy tarreau [Fri, 12 May 2006 17:49:37 +0000 (19:49 +0200)] 
[MINOR] separately display the server and proxy queue sizes in the logs

19 years ago[CLEANUP] remove the unused SV_STCPEND state
willy tarreau [Fri, 12 May 2006 17:46:40 +0000 (19:46 +0200)] 
[CLEANUP] remove the unused SV_STCPEND state

19 years ago[CRITICAL] fix a crashing trouble with the maxconn limits.
willy tarreau [Thu, 11 May 2006 23:29:08 +0000 (01:29 +0200)] 
[CRITICAL] fix a crashing trouble with the maxconn limits.

If a task was queued on a server and if this task was alone and aborted
before any other task did anything, there were situations by which it
might have queued itself in the run queue, then exited, and the upcoming
tv_queue() associated to the run loop would have resurrected it siently,
causing crashes in task_queue.

The new principle consists in assigning a task to every server that
needs a connection limit. This task will be woken up every time we
suspect we might leave some place to queue a task. The server's task
itself will only have to run across its queue and run the available
number of tasks.

19 years ago[CLEANUP] added some comments at some complex places
willy tarreau [Tue, 9 May 2006 21:15:58 +0000 (23:15 +0200)] 
[CLEANUP] added some comments at some complex places

19 years ago[MEDIUM] in the request, always consider empty cookies as invalid.
willy tarreau [Wed, 10 May 2006 02:27:21 +0000 (04:27 +0200)] 
[MEDIUM] in the request, always consider empty cookies as invalid.

This solves a problem of unwanted stickyness to backup servers when some
clients incidentely memorize an empty cookie.

19 years ago[MINOR] set the expiration date when removing a cookie
willy tarreau [Tue, 9 May 2006 21:32:26 +0000 (23:32 +0200)] 
[MINOR] set the expiration date when removing a cookie

It was specified in the documentation that a cookie would be deleted if the
client was switched to a cookie-less server such as a backup server, in
order to avoid stickyness on errors. To achieve this, an empty cookie was
returned. It seems this no longer works (at least with Firefox 1.5 and
Mozilla 1.8a5), because the browser returns the empty cookie. The cookie
specification says that in order to remove a cookie, it must be accompanied
by an expiration date in the past, so this is what we do. Tested on Mozilla
1.8a5, works.

19 years ago[MINOR] swapped the queued and active sessions in the logs
willy tarreau [Mon, 8 May 2006 09:52:55 +0000 (11:52 +0200)] 
[MINOR] swapped the queued and active sessions in the logs

It was not natural to read sess/pend/lsess/psess in the logs, so before
the feature became official, I've swapped them to read :

   pend/sess/lsess/psess

Where <pend> is the overall number of pending connections on this instance,
including all the servers queues, <sess> is the number of sessions remaining
active on the server when the log was emitted (after the end of the session,
or after parsing the request), <lsess> and <psess> are the number of active
sessions on the listener and on the process respectively.

19 years ago[MINOR] uninlining 6 very common functions saved 15% code size and improved perf
willy tarreau [Thu, 4 May 2006 17:23:38 +0000 (19:23 +0200)] 
[MINOR] uninlining 6 very common functions saved 15% code size and improved perf
        by about 1-2% :
  tv_delayfrom, tv_cmp_ms, tv_cmp2, tv_cmp2_ms, tv_remain2, fd_delete

19 years ago[MEDIUM] when a server goes up, it now steals part of the proxy's queue.
willy tarreau [Thu, 4 May 2006 13:16:23 +0000 (15:16 +0200)] 
[MEDIUM] when a server goes up, it now steals part of the proxy's queue.

19 years ago[MEDIUM] redispatch queued sessions if possible when a server goes down.
willy tarreau [Thu, 4 May 2006 10:09:37 +0000 (12:09 +0200)] 
[MEDIUM] redispatch queued sessions if possible when a server goes down.

19 years ago[MEDIUM] apply the contimeout to the queue by default.
willy tarreau [Wed, 3 May 2006 18:11:50 +0000 (20:11 +0200)] 
[MEDIUM] apply the contimeout to the queue by default.
An improvement will be to have a separate timeout for the queue.

19 years ago[doc] updated the TODO
willy tarreau [Tue, 2 May 2006 21:45:50 +0000 (23:45 +0200)] 
[doc] updated the TODO

19 years ago[MINOR] updated the sig_dump_state() output to show the conn queue state.
willy tarreau [Tue, 2 May 2006 21:32:51 +0000 (23:32 +0200)] 
[MINOR] updated the sig_dump_state() output to show the conn queue state.

19 years ago[MEDIUM] logs now show the time spent in the queue and the number of sessions
willy tarreau [Tue, 2 May 2006 20:54:52 +0000 (22:54 +0200)] 
[MEDIUM] logs now show the time spent in the queue and the number of sessions
already waiting at accept() time. This number of session is global per instance
so it does not reflect one particular server.

19 years ago[MEDIUM] slightly optimize the scheduler for non-expirable tasks.
willy tarreau [Tue, 2 May 2006 12:51:00 +0000 (14:51 +0200)] 
[MEDIUM] slightly optimize the scheduler for non-expirable tasks.
The non-expirable tasks are now sent to a dedicated wait-queue so that
they do not pollute the other ones anymore. This is a temporary dirty
hack which will go away with the new O(log(n)) scheduler.

19 years ago[MAJOR] first limited implementation of connection queueing.
willy tarreau [Mon, 1 May 2006 22:19:57 +0000 (00:19 +0200)] 
[MAJOR] first limited implementation of connection queueing.
        There is no timeout yet, and the server UP/DOWN events are not used
to export/import list of connections yet. It seems that the process
can sometimes eat lots of user CPU (~50%) if a maxconn is set on an
overloaded server.

19 years ago[MINOR] print the proxy name on first line during dumps to avoid confusion.
willy tarreau [Mon, 1 May 2006 13:28:01 +0000 (15:28 +0200)] 
[MINOR] print the proxy name on first line during dumps to avoid confusion.

19 years ago[MAJOR] fixed missing checks for NULL srv pointers (possible in dispatch mode)
willy tarreau [Mon, 1 May 2006 13:26:35 +0000 (15:26 +0200)] 
[MAJOR] fixed missing checks for NULL srv pointers (possible in dispatch mode)

19 years ago[MEDIUM] it was not possible to balance between backup servers in source hash mode.
willy tarreau [Sat, 29 Apr 2006 10:11:46 +0000 (12:11 +0200)] 
[MEDIUM] it was not possible to balance between backup servers in source hash mode.

19 years ago[MINOR] stupid bug which caused two different session flags to use the same bit.
willy tarreau [Sat, 29 Apr 2006 08:43:46 +0000 (10:43 +0200)] 
[MINOR] stupid bug which caused two different session flags to use the same bit.
Fortunately, this had no side effect because they were not used in same areas.

19 years ago[CLEANUP] cleaned some comments.
willy tarreau [Mon, 24 Apr 2006 12:36:48 +0000 (14:36 +0200)] 
[CLEANUP] cleaned some comments.

19 years ago[MINOR] always process the run queue from the head.
willy tarreau [Sat, 22 Apr 2006 13:13:16 +0000 (15:13 +0200)] 
[MINOR] always process the run queue from the head.
This ensures that any task wan wake any other task up and that it will be
processed too.

19 years ago[MEDIUM] now the round-robin load balancer uses two passes to avoid saturated servers...
willy tarreau [Wed, 12 Apr 2006 18:29:08 +0000 (20:29 +0200)] 
[MEDIUM] now the round-robin load balancer uses two passes to avoid saturated servers. The first avoids servers which have filled with maxconn connections, and a second pass can enforce the selection of one of them if the first pass found no candidate.

19 years ago[MEDIUM] added the necessary infrastructure to support per-server session limits...
willy tarreau [Wed, 12 Apr 2006 17:26:23 +0000 (19:26 +0200)] 
[MEDIUM] added the necessary infrastructure to support per-server session limits : - the "maxconn" config option - the new SV_STCPEND state (connection pending) - a per-server pending connections queue

19 years ago[MINOR] imported mini-clist.h (circular lists) from librt. It might be wise to merge...
willy tarreau [Wed, 12 Apr 2006 17:15:57 +0000 (19:15 +0200)] 
[MINOR] imported mini-clist.h (circular lists) from librt. It might be wise to merge this with list.h and use sort of common structures.

19 years ago[MEDIUM] added the total number of sessions per server and per proxy and we now repor...
willy tarreau [Fri, 7 Apr 2006 16:23:29 +0000 (18:23 +0200)] 
[MEDIUM] added the total number of sessions per server and per proxy and we now report it in the dumps.

19 years ago[MINOR] added some comments to the places where we can send a pending connection...
willy tarreau [Fri, 7 Apr 2006 15:37:55 +0000 (17:37 +0200)] 
[MINOR] added some comments to the places where we can send a pending connection to a server in case of throttling.