103 Commits

Author SHA1 Message Date
antirez
dd46b715a9 lenght -> length 2012-01-24 15:33:15 +01:00
antirez
069139ce75 after all closing a client for output buffer limit overcoming is a WARNING level message. 2012-01-24 12:03:48 +01:00
antirez
9844d172b9 Client output buffer limits: configuration of parameters for the different classes of clients implemented. 2012-01-24 10:43:30 +01:00
antirez
65654feac2 asyncCloseClientOnOutputBufferLimitReached() now ignores clients with REDIS_CLOSE_ASAP flag already set. Return value of the function changed from int to void since it is not used. Fixed logging of the client scheduled to be closed. 2012-01-24 09:32:39 +01:00
antirez
ddec8a8903 client buffer handling refactoring and optimization 2012-01-23 17:15:49 +01:00
antirez
1caa425a7c Implementation of the internals that make possible to terminate clients overcoming configured output buffer (soft and hard) limits. 2012-01-23 16:12:37 +01:00
antirez
edfaedafb0 Introduced three client limit classes: normal, slave, pubsub 2012-01-17 12:43:01 +01:00
antirez
b7a33b7322 Track the length of the client pending output buffers (still to transfer) in a new field in the client structure. 2012-01-17 12:23:25 +01:00
antirez
a9ea3f0700 On crash print information about the current client (if any), command vector, and object associated to first argument assuming it is a key. 2012-01-12 16:02:57 +01:00
antirez
2d4305c5b8 Protections against protocol desyncs, leading to infinite query buffer growing, due to nul-terms in specific bytes of the request or indefinitely long multi bulk or bulk count strings without newlines. This bug is related to Issue #141 as well. 2011-12-31 16:09:46 +01:00
antirez
ac6de3d151 Fixed replication when multiple slaves are attaching at the same time. The output buffer was not copied correctly between slaves. This fixes issue #141. 2011-12-30 19:40:43 +01:00
antirez
64afc922e6 server.replstate -> server.repl_state 2011-12-21 12:23:18 +01:00
antirez
c466e56e91 Fixed memleak in CLIENT INFO, added simple test that will work as regression test on mac os x and in the CI when running over valgrind. This fixes issue #256 2011-12-19 10:16:37 +01:00
antirez
09f5c58216 show initial querybuf bytes on querybuf overflow. 2011-11-28 11:12:55 +01:00
antirez
ce13e0d064 log client protocol errors for log level >= verbose 2011-11-25 16:09:34 +01:00
antirez
aac9f95be1 minor refactoring to networking.c adding a separated function to get a string representing the current state of all the connected clients. 2011-11-24 15:04:42 +01:00
antirez
9dbcab8b08 last executed command in CLIENT LIST output. 2011-11-24 14:56:34 +01:00
antirez
785a743b78 new counter in INFO output: rejected_connections with number of dropped connections because of maxclients limit reached. 2011-11-23 18:38:12 +01:00
antirez
22d6f6579b Fixed bug in getClientInfoString() that was not rendering the N (no flags) special flag correctly. 2011-11-21 16:19:30 +01:00
antirez
8dd9319cb2 Close client connection and log the event when the client input buffer reaches 1GB. 2011-11-21 16:17:51 +01:00
antirez
3f428bb5c2 show active events in client file descriptor in CLIENT LIST. 2011-11-21 16:06:03 +01:00
antirez
52c3150e1e added output list and buffer length, query buffer size, to CLIENT LIST output. 2011-11-21 15:54:49 +01:00
antirez
48f70ac1b7 code generating the CLIENT LIST output refactored to have a function that is able to render a single client into a client info string. 2011-11-21 15:34:32 +01:00
antirez
006d721473 useless double if removed. 2011-11-08 11:26:06 +01:00
antirez
2ce2bb347a yet another #if REDIS_MBULK_BIG_ARG removed. 2011-11-08 11:24:12 +01:00
antirez
bbc8260844 Multi bulk optimization for creating big objects without copying data is no longer optional, #ifdefs removed. Also debugging messages removed. 2011-11-08 11:22:40 +01:00
antirez
8da0b6d7b8 A comment moved a few lines for clarity. 2011-11-04 11:18:15 +01:00
antirez
7c615d3a26 Added a define to set the size threshold to enable the multi bulk parsing big objects optimization. 2011-11-04 11:16:11 +01:00
antirez
661dfc7ba6 further optimizations for the multi bulk protocol parsing code when big objects are transmitted to Redis. 2011-11-03 15:53:40 +01:00
antirez
7cef7b3847 optimized object creation in multi-bulk protocol parsing 2011-11-02 17:30:19 +01:00
antirez
8b02578017 sdsIncrLen() / sdsMakeRoomFor() used to avoid copying to intermediate buffer while reading the client query. 2011-11-02 16:52:45 +01:00
antirez
9ae9fcaefb maxclients configuration is now implemented dealing with the actual process rlimits. Setting maxclients to 0 no longer makes sense and is now invalid, the new default is 10000.
See issue #162 for more information.
2011-10-31 10:49:27 +01:00
antirez
70a04c93cb First implementation of the ASKING command. Semantics still to verify. 2011-10-17 17:35:23 +02:00
antirez
357f49db2f replaced redisAssert() with redisAssertWithInfo() in a shitload of places. 2011-10-04 18:43:03 +02:00
antirez
0d57e6afc1 Remove the write handler only if there are no longer objects in the output queue AND if the static buffer is empty. This bug was the cause of a possible server-stop-responding-to-client bug under some specific work load. Thanks to Pieter Noordhuis for spotting and fixing it. 2011-09-12 11:06:28 +02:00
Hampus Wessman
e558915223 Fix crash when pipelining several blocking commands. 2011-07-28 13:50:44 +02:00
antirez
3aa9917e6e Replicate EVALSHA as EVAL taking a dictionary of sha1 -> script source code. 2011-07-13 15:38:03 +02:00
antirez
335b27ecd0 master branch merged into scripting. 2011-07-12 12:39:16 +02:00
antirez
ee2dc83094 Take a pointer to the relevant entry of the command table in the client structure. This is generally a more sounding design, simplifies a few functions prototype, and as a side effect fixes a bug related to the conversion of EXPIRE -1 to DEL: before of this fix Redis tried to convert it into an EXPIREAT in the AOF code, regardless of our rewrite of the command. 2011-07-08 12:59:30 +02:00
antirez
4d0e1714f0 unstable merge conflicts resolved 2011-06-25 12:29:24 +02:00
antirez
59f09141f5 diskstore removed 2011-06-25 12:22:03 +02:00
antirez
7192cd5cb7 Fix for bug 561 and other related problems 2011-06-20 17:19:36 +02:00
antirez
c91c904e1c new INFO filed master_link_down_since_seconds 2011-06-17 16:16:46 +02:00
antirez
cfd32c162f Make sure error and status replies emitted by Lua scripts can never have more than a newline, otherwise it is a protocol violation and clients will desync. 2011-05-25 12:32:50 +02:00
antirez
4a56ea5b76 when creating not connected clients do not add them into the clients list, otherwise they will be subject to timeouts and other stuff 2011-05-25 12:32:44 +02:00
antirez
2039ac2211 Correctly glue the reply buffer. For now returned as it is to Lua, but will be converted into Lua native type later. 2011-05-25 12:32:44 +02:00
antirez
09e9cb316e Lua call of Redis command work in progress: sorry I have to go to the cinema to watch the Source Code movie 2011-05-25 12:32:44 +02:00
antirez
ab1d6f5ca0 when Redis fails accepting a new connection reports the error at WARNING and not VERBOSE error level. Thanks to offby1 for proposing this in the Redis mailing list. #backport-candidate 2011-05-07 11:47:34 +02:00
Pieter Noordhuis
77ae0ac00f Check for \n after finding \r 2011-05-05 16:32:22 +02:00
Pieter Noordhuis
29d9fa9840 Move code 2011-05-05 16:25:48 +02:00