Commit Graph

7467 Commits

Author SHA1 Message Date
6b675b9525 Applies addReplySubSyntaxError to stream commands 2018-06-12 14:52:50 +03:00
bcc42028c1 Fix XGROUP help missing space. 2018-06-12 13:20:46 +02:00
071e235a52 Regression test for issue #5006. 2018-06-12 13:15:53 +02:00
6acd8a31a4 fix active-defrag-threshold value error
The active-defrag-threshold-lower/active-defrag-threshold-upper min/max  value in redis.conf should be consistent with 'config set' command.
2018-06-12 13:15:53 +02:00
20bc3786c0 Streams: fix backward iteration when entry is not flagged SAMEFIELD.
See issue #5006. The comment in the code was also wrong and
was rectified as well.
2018-06-12 13:15:53 +02:00
2cadef46f7 Streams: increment dirty counter for XGROUP SETID/DESTROY.
See issue #5005 comments.
2018-06-12 13:15:53 +02:00
093ec57d06 Use a less aggressive query buffer resize policy.
A user with many connections (10 thousand) on a single Redis server
reports in issue #4983 that sometimes Redis is idle becuase at the same
time many clients need to resize their query buffer according to the old
policy.

It looks like this was created by the fact that we allow the query
buffer to grow without problems to a size up to PROTO_MBULK_BIG_ARG
normally, but when the client is idle we immediately are more strict,
and a query buffer greater than 1024 bytes is already enough to trigger
the resize. So for instance if most of the clients stop at the same time
this issue should be easily triggered.

This behavior actually looks odd, and there should be only a clear limit
after we say, let's look at this query buffer to check if it's time to
resize it. This commit puts the limit at PROTO_MBULK_BIG_ARG, and the
check is performed both if compared to the peak usage the current usage
is too big, or if the client is idle.

Then when the check is performed, to waste just a few kbytes is
considered enough to proceed with the resize. This should fix the issue.
2018-06-12 13:15:52 +02:00
d769ce0a20 Fix client unblocking for XREADGROUP, issue #4978.
We unblocked the client too early, when the group name object was no
longer valid in client->bpop, so propagating XCLAIM later in
streamPropagateXCLAIM() deferenced a field already set to NULL.
2018-06-12 13:15:52 +02:00
280b2dc1e4 Improved regression test for #4906.
Removing the fix about 50% of the times the test will not be able to
pass cleanly. It's very hard to write a test that will always fail, or
actually, it is possible but then it's likely that it will consistently
pass if we change some random bit, so better to use randomization here.
2018-06-12 13:15:52 +02:00
260b32edff Regression test for the dictScan() issue #4906. 2018-06-12 13:15:52 +02:00
28e0ca5a8c Streams: checkType for xread & xinfo 2018-06-12 13:15:52 +02:00
9d2b1f294d Streams: lookupKey[Read->Write]OrReply in xdel and xtrim 2018-06-12 13:15:52 +02:00
3d4ad250cd Abort in XGROUP if the key is not a stream 2018-06-12 13:15:52 +02:00
5a3d490c50 fix integer case error 2018-06-12 13:15:52 +02:00
24fb4e3894 Implement DEBUG htstats-key. 2018-06-12 13:15:52 +02:00
a67ecb91f9 redis-cli inline help updated. 2018-06-12 13:15:52 +02:00
5cdd475066 Add the stream group to the script generating the help. 2018-06-12 13:15:52 +02:00
2cd6b001da fix stream config typo 2018-06-12 13:15:52 +02:00
b2a5a70e5a Streams: better document the max node limits. 2018-06-12 13:15:13 +02:00
eb26a8174a Typo: entires -> entries in several places. 2018-06-12 13:15:13 +02:00
f2d65c380d Streams: make macro node limits configurable. 2018-06-12 13:15:13 +02:00
b16e5432b6 Streams: max node limits only checked if non zero. 2018-06-12 13:15:13 +02:00
d01af7abe4 Streams: use non static macro node limits.
Also add the concept of size/items limit, instead of just having as
limit the number of bytes.
2018-06-12 13:15:13 +02:00
77acc63eef Fix write() errno error 2018-06-12 13:15:13 +02:00
3ddc537605 Return early in XPENDING if sent a nonexistent consumer group. 2018-06-12 13:15:13 +02:00
b85086c573 Typo in preprocessor condition 2018-06-12 13:15:13 +02:00
4a9670f517 RDB: expand dict if needed when rdb load object 2018-06-12 13:15:13 +02:00
d5712d2151 adjust position of _dictNextPower in dictExpand 2018-06-12 13:15:13 +02:00
3ca02fb939 zset: change the span of zskiplistNode to unsigned long 2018-06-12 13:15:13 +02:00
59e51f92d2 zset: fix the int problem 2018-06-12 13:15:13 +02:00
e916f4519c Merge branch 'unstable' of github.com:/antirez/redis into unstable 2018-06-12 13:14:01 +02:00
6bf65138de Regression test for issue #5006. 2018-06-12 13:13:35 +02:00
bcecbebb74 Merge pull request #5012 from shenlongxing/fix-config
fix active-defrag-threshold value error
2018-06-12 13:05:19 +02:00
13957c9d07 fix active-defrag-threshold value error
The active-defrag-threshold-lower/active-defrag-threshold-upper min/max  value in redis.conf should be consistent with 'config set' command.
2018-06-12 17:59:32 +08:00
7cc1312789 Streams: fix backward iteration when entry is not flagged SAMEFIELD.
See issue #5006. The comment in the code was also wrong and
was rectified as well.
2018-06-12 10:22:49 +02:00
7659619824 Update geohash.c
fix geohasEncode bug when step > 31
2018-06-12 15:28:28 +08:00
82661ba329 Merge pull request #5007 from leonchen83/patch-2
fix typo issue #5005
2018-06-12 09:28:26 +02:00
923e63e5ec Streams: increment dirty counter for XGROUP SETID/DESTROY.
See issue #5005 comments.
2018-06-12 09:27:40 +02:00
fac3e8aab5 fix typo
fix [#5005](https://github.com/antirez/redis/issues/5005)
2018-06-12 08:52:18 +08:00
cec404f099 Use a less aggressive query buffer resize policy.
A user with many connections (10 thousand) on a single Redis server
reports in issue #4983 that sometimes Redis is idle becuase at the same
time many clients need to resize their query buffer according to the old
policy.

It looks like this was created by the fact that we allow the query
buffer to grow without problems to a size up to PROTO_MBULK_BIG_ARG
normally, but when the client is idle we immediately are more strict,
and a query buffer greater than 1024 bytes is already enough to trigger
the resize. So for instance if most of the clients stop at the same time
this issue should be easily triggered.

This behavior actually looks odd, and there should be only a clear limit
after we say, let's look at this query buffer to check if it's time to
resize it. This commit puts the limit at PROTO_MBULK_BIG_ARG, and the
check is performed both if compared to the peak usage the current usage
is too big, or if the client is idle.

Then when the check is performed, to waste just a few kbytes is
considered enough to proceed with the resize. This should fix the issue.
2018-06-11 17:12:28 +02:00
5bbb00fbb4 Merge branch 'unstable' of github.com:/antirez/redis into unstable 2018-06-11 16:52:45 +02:00
34bd44187a Fix client unblocking for XREADGROUP, issue #4978.
We unblocked the client too early, when the group name object was no
longer valid in client->bpop, so propagating XCLAIM later in
streamPropagateXCLAIM() deferenced a field already set to NULL.
2018-06-11 16:51:06 +02:00
ba2101738d Merge pull request #5000 from shenlongxing/fix-config
fix integer case error
2018-06-11 16:34:26 +02:00
b136502d0f Merge pull request #4995 from shenlongxing/unstable
fix stream config typo
2018-06-11 16:33:38 +02:00
5db262b623 Merge pull request #5002 from soloestoy/streams-read-or-write
Streams: lookupKey[Read->Write]OrReply in xdel and xtrim
2018-06-11 16:33:10 +02:00
e2a9ea0405 Merge pull request #4901 from KFilipek/zmalloc_typo_fix
HW_PHYSMEM typo in preprocessor condition
2018-06-11 16:32:40 +02:00
295db9ee0a Merge pull request #5003 from soloestoy/streams-checkType
Streams: checkType for xread & xinfo
2018-06-11 16:32:00 +02:00
163f32c22a Merge pull request #5001 from michael-grunder/xgroup-check-type
Abort in XGROUP if the key is not a stream
2018-06-11 16:30:49 +02:00
00613bed06 Improved regression test for #4906.
Removing the fix about 50% of the times the test will not be able to
pass cleanly. It's very hard to write a test that will always fail, or
actually, it is possible but then it's likely that it will consistently
pass if we change some random bit, so better to use randomization here.
2018-06-11 13:10:06 +02:00
27beaf2f22 Regression test for the dictScan() issue #4906. 2018-06-11 12:51:26 +02:00