7077 Commits

Author SHA1 Message Date
antirez
7ab0605a9e Streams: fix new XREADGROUP sync logic. 2018-07-10 12:02:03 +02:00
antirez
79ffb03598 Streams: make blocking for > a truly special case.
To simplify the semantics of blocking for a group, this commit changes
the implementation to better match the description we provide of
conusmer groups: blocking for > will make the consumer waiting for new
elements in the group. However blocking for any other ID will always
serve the local history of the consumer.

However it must be noted that the > ID is actually an alias for the
special ID ms/seq of UINT64_MAX,UINT64_MAX.
2018-07-10 11:34:17 +02:00
antirez
aeb04948e2 Streams: send an error to consumers blocked on non-existing group.
To detect when the group (or the whole key) is destroyed to send an
error to the consumers blocked in such group is a problem, so we leave
the consumers listening, the sysadmin is free to create or destroy
groups assuming she/he knows what to do. However a client may be blocked
in a given consumer group, that is later destroyed. Then the stream
receives new elements. In that case there is no sane behavior to serve
the consumer... but to report an error about the group no longer
existing.

More about detecting this synchronously and why it is not done:

1. Normally we don't do that, we leave clients blocked for other data
types such as lists.

2. When we free a stream object there is no longer information about
what was the key it was associated with, so while destroying the
consumer groups we miss the info to unblock the clients in that moment.

3. Objects can be reclaimed in other threads where it is no longer safe
to do client operations.
2018-07-10 11:19:06 +02:00
antirez
7035bcd48a Streams: fix unblocking logic into a consumer group.
When a client blocks for a consumer group, we don't know the actual ID
we want to be served: other clients blocked in the same consumer group
may be served first, so the consumer group latest delivered ID changes.
This was not handled correctly, all the clients in the consumer group
were unblocked without data but the first.
2018-07-10 11:11:41 +02:00
antirez
0e6045f75b redis-cli: fix #4990 additional argument in help. 2018-07-09 13:36:47 +02:00
antirez
5d201d8d58 redis-cli: fix #5096 double error message. 2018-07-09 13:25:48 +02:00
antirez
208e36ca6a redis-cli: cliConnect() flags CC_FORCE and CC_QUIET.
We need CC_QUIET in order to fix #5096 by silently failing if needed.
2018-07-09 13:24:30 +02:00
Amit Dey
eae9c0f5d9 fixing broken link in CONTRIBUTING
http://help.github.com/send-pull-requests/ 
is no longer supported

this change modifies the link to the working one
https://help.github.com/articles/creating-a-pull-request/
2018-07-09 13:14:57 +02:00
dejun.xdj
962e431832 CLIENT UNBLOCK: fix client unblock help message. 2018-07-09 13:03:57 +02:00
minkikim89
822b90064f fix whitespace in redis-cli.c 2018-07-09 12:59:13 +02:00
WuYunlong
df1b7fb89c fix compile warning in addReplySubcommandSyntaxError 2018-07-09 12:57:12 +02:00
antirez
97830129ae Use nolocks_localtime() for safer logging. 2018-07-04 16:50:22 +02:00
antirez
7eb135bc8f Cache timezone and daylight active flag for safer logging.
With such information will be able to use a private localtime()
implementation serverLog(), which does not use any locking and is both
thread and fork() safe.
2018-07-04 16:45:00 +02:00
antirez
cb68655d2d Localtime: clarify is_leap_year() working with comments. 2018-07-04 15:50:41 +02:00
antirez
3f920487d4 Localtime: fix comment about leap year. 2018-07-04 15:16:54 +02:00
antirez
152d90e3b6 Localtime: fix daylight saving adjustment. Use * not +. 2018-07-04 15:16:20 +02:00
antirez
766e92aa45 Localtime: fix daylight time documentation and computation. 2018-07-04 14:09:07 +02:00
antirez
13cd50b276 Localtime: add a test main() function to check the output. 2018-07-04 13:46:31 +02:00
antirez
d2040d3fd1 Localtime: day of month is 1 based. Convert from 0 based "days". 2018-07-04 13:35:40 +02:00
antirez
137aaa6b6b Localtime: fix timezone adjustment. 2018-07-04 13:35:15 +02:00
antirez
083131e18e Localtime: compute year, month and day of the month. 2018-07-04 13:25:55 +02:00
antirez
cbdc3059ec Localtime: basics initial calculations. Year missing. 2018-07-04 13:16:53 +02:00
antirez
2e843f9676 Localtime function skeleton and file added. 2018-07-04 12:56:12 +02:00
Jack Drogon
bae1d36e5d Fix typo 2018-07-03 18:19:46 +02:00
antirez
abe790cae3 Clarify the pending_querybuf field of clients. 2018-07-03 13:25:41 +02:00
antirez
24f2f7b69b Improve style of PR #5084. 2018-07-03 13:23:29 +02:00
Salvatore Sanfilippo
3613a8ae24 Merge pull request #5084 from chendq8/pending-querybuf
limit the size of pending-querybuf in masterclient
2018-07-03 13:19:37 +02:00
antirez
574b79fea6 Set repl_down_since to zero on state change.
PR #5081 fixes an "interesting" bug about Redis Cluster failover but in
general about the updating of repl_down_since, that is used in order to
count the time a slave was left disconnected from its master.

While the fix provided resolves the specific issue, in general the
validity of repl_down_since is limited to states that are different
than the state CONNECTED, and the disconnected time is set when the
state is DISCONNECTED. However from CONNECTED to other states, the state
machine must always go to DISCONNECTED first. So it makes sense to set
the field to zero (since it is meaningless in that context) when the
state is set to CONNECTED.
2018-07-03 12:42:14 +02:00
Salvatore Sanfilippo
57c5bd3ae7 Merge pull request #5081 from trevor211/fixClusterFailover
cluster failover bug
2018-07-03 12:36:53 +02:00
chendianqiang
602d502e5c Merge branch 'unstable' into pending-querybuf 2018-07-03 10:07:26 +08:00
antirez
938d879c2a addReplySubSyntaxError() renamed to addReplySubcommandSyntaxError(). 2018-07-02 18:49:34 +02:00
Salvatore Sanfilippo
c44be0ab9b Merge pull request #4998 from itamarhaber/module_command_help
Module command help
2018-07-02 18:46:56 +02:00
Salvatore Sanfilippo
a620fe8a13 Merge pull request #5071 from akshaynagpal/patch-2
Added link to Google Group
2018-07-02 18:41:58 +02:00
Salvatore Sanfilippo
6a55b40348 Merge pull request #5068 from shenlongxing/fix-rename-command
fix empty string for sentinel rename-command
2018-07-02 18:40:35 +02:00
Salvatore Sanfilippo
7795fffc75 Merge pull request #5090 from trevor211/test_helper_tcl
fix tests/test_helper.tcl with --wait-server option.
2018-07-02 17:51:04 +02:00
WuYunlong
c30b70b3fa fix tests/test_helper.tcl with --wait-server option.
Issue #5063 added --wait-server option, but can not work.
2018-07-02 19:26:52 +08:00
chendianqiang
117a76ac63 limit the size of pending-querybuf in masterclient 2018-07-01 14:43:53 +08:00
WuYunlong
59dd29bb35 fix server.repl_down_since resetting, so that slaves could failover
automatically as expected.
2018-06-30 09:39:08 +08:00
WuYunlong
db2c29a61e cluster.tcl: Add master consecutively down test. 2018-06-30 09:29:35 +08:00
antirez
01c617ea23 Change CLIENT LIST TYPE help string.
Making it more similar to KILL.
2018-06-29 18:03:00 +02:00
Salvatore Sanfilippo
6ceda1d89c Merge pull request #5075 from soloestoy/client-list-types
FEATURE: implements client list type option
2018-06-29 18:00:32 +02:00
Salvatore Sanfilippo
f6cfaa1106 Merge pull request #5074 from soloestoy/fix-compile-warning
fix some compile warnings
2018-06-29 17:56:47 +02:00
Salvatore Sanfilippo
611dc4f6d3 Merge pull request #5076 from 0xtonyxia/add-no-auth-warning-option
Add no auth warning option
2018-06-29 13:32:58 +02:00
dejun.xdj
65f043f706 Check if password is used on command line interface. 2018-06-28 19:09:22 +08:00
dejun.xdj
0fb2c8d5ea Fix trailing white space. 2018-06-28 18:47:28 +08:00
dejun.xdj
62d5696fa6 Fix code format issue. 2018-06-28 18:39:42 +08:00
dejun.xdj
f8831b81df Don't output password warning message when --no-auth-warning is used. 2018-06-28 18:38:24 +08:00
dejun.xdj
16164e3112 Avoid -Woverlength-strings compile warning.
Using another fprintf call to output the rest help message.
2018-06-28 18:22:06 +08:00
antirez
b6f7e996d3 Rax library updated (node callback). 2018-06-28 12:19:06 +02:00
dejun.xdj
f056c33fd9 Add --no-auth-warning help message. 2018-06-28 18:17:04 +08:00