11906 Commits

Author SHA1 Message Date
antirez
336e8a7fa2 LPOS: update to latest proposal.
See https://gist.github.com/antirez/3591c5096bc79cad8b5a992e08304f48
2020-06-11 11:18:20 +02:00
antirez
5766a69a41 LPOS: implement the final design. 2020-06-10 12:49:15 +02:00
Paul Spooren
cc04253b1d LRANK: Add command (the command will be renamed LPOS).
The `LRANK` command returns the index (position) of a given element
within a list. Using the `direction` argument it is possible to specify
going from head to tail (acending, 1) or from tail to head (decending,
-1). Only the first found index is returend. The complexity is O(N).

When using lists as a queue it can be of interest at what position a
given element is, for instance to monitor a job processing through a
work queue. This came up within the Python `rq` project which is based
on Redis[0].

[0]: https://github.com/rq/rq/issues/1197

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-06-10 12:07:40 +02:00
John Sully
49fecbe1d4 Implement replicaof remove as requested in issue #192
Former-commit-id: 70b80aa5fad6c2191c2142ce49626b81d0950fa8
2020-06-09 12:43:58 -04:00
antirez
ce8f107a5e Redis 6.0.5. 2020-06-09 12:19:30 +02:00
antirez
93e76ba456 Adapt EVAL+busy script test to new behavior. 2020-06-09 12:19:30 +02:00
antirez
5d1b27f4f9 Adapt EVAL+busy script test to new behavior. 2020-06-09 12:19:14 +02:00
antirez
e819e3ee26 Temporary fix for #7353 issue about EVAL during -BUSY. 2020-06-09 11:53:01 +02:00
xhe
5fae6590a1 return the correct proto version
HELLO should return the current proto version, while the code hardcoded
3
2020-06-09 11:53:01 +02:00
Oran Agra
640a4479b0 Don't queue commands in an already aborted MULTI state 2020-06-09 11:53:01 +02:00
Oran Agra
881d2c4663 Avoid rejecting WATCH / UNWATCH, like MULTI/EXEC/DISCARD
Much like MULTI/EXEC/DISCARD, the WATCH and UNWATCH are not actually
operating on the database or server state, but instead operate on the
client state. the client may send them all in one long pipeline and check
all the responses only at the end, so failing them may lead to a
mismatch between the client state on the server and the one on the
client end, and execute the wrong commands (ones that were meant to be
discarded)

the watched keys are not actually stored in the client struct, but they
are in fact part of the client state. for instance, they're not cleared
or moved in SWAPDB or FLUSHDB.
2020-06-09 11:53:01 +02:00
zhaozhao.zz
d496ce7271 AOF: append origin SET if no expire option 2020-06-09 11:53:01 +02:00
Oran Agra
216b5a1aae fix disconnectSlaves, to try to free each slave.
the recent change in that loop (iteration rather than waiting for it to
be empty) was intended to avoid an endless loop in case some slave would
refuse to be freed.

but the lookup of the first client remained, which would have caused it
to try the first one again and again instead of moving on.
2020-06-09 11:53:01 +02:00
zhaozhao.zz
2a8ee55176 donot free protected client in freeClientsInAsyncFreeQueue
related #7234
2020-06-09 11:53:01 +02:00
antirez
e286d3b4b6 Temporary fix for #7353 issue about EVAL during -BUSY. 2020-06-09 11:52:33 +02:00
hwware
44195a2047 fix server crash in STRALGO command 2020-06-08 23:36:01 -04:00
John Sully
76070d51a6 Update gcov for C++
Former-commit-id: e8d4d095cc5268fb35170dd1f2cb56e25c3d2b69
2020-06-08 16:48:44 -04:00
Ben Schermel
804f45b86f update Dockerfile
Former-commit-id: c50a3568a5b85b5d8c94cb829108ef796bc1327c
2020-06-08 15:34:22 -04:00
Ben Schermel
d46b26cbc5 updating changelog
Former-commit-id: 17e96b91b5743b6f6d3960f531f1f1dfa26180ec
2020-06-08 15:34:22 -04:00
Ben Schermel
5213d7e873 dh9 for stretch deb pkg
Former-commit-id: c5e7a8517b5423ccb2bc16700199f3fc7d285801
2020-06-08 15:34:22 -04:00
Ben Schermel
0cd8d8abb7 fix missing sentinel
Former-commit-id: c36773777d61e9210d8c05274d26b7819dcb7c23
2020-06-08 15:34:22 -04:00
Ben Schermel
10ebe65658 update changelog
Former-commit-id: d69e0b8561a50d4d27abdc9b0d0b20e5c9eac004
2020-06-08 15:34:22 -04:00
Ben Schermel
110cc2d6fc update changelog
Former-commit-id: 19ccc22a4391708b0eea069b5dc0ea5d9bc22407
2020-06-08 15:34:22 -04:00
Ben Schermel
a38376bf37 update changelog
Former-commit-id: 6968a0cfcb01d244ab9eff55b959a4c42f030182
2020-06-08 15:34:22 -04:00
Ben Schermel
5969877486 include support for dists < dh11
Former-commit-id: df618fbd9f4adc0132b51c00480a08d16aca2732
2020-06-08 15:34:22 -04:00
Ben Schermel
b3dbf5d520 fix rpmbuild dirs
Former-commit-id: 94acd43340c188e6aff60ee61bfcfcb6675074ab
2020-06-08 15:34:22 -04:00
Ben Schermel
4fe2e7d6fe fix rpmbuild dirs
Former-commit-id: 14bdd745d10c5e8efa3518445641629c79407992
2020-06-08 15:34:22 -04:00
Ben Schermel
b36b726312 adding dh_installsystemd
Former-commit-id: aa3f5de16fa8f5326baeace48475b026f2d2362f
2020-06-08 15:34:22 -04:00
Ben Schermel
58823a969f strip unused from deb source
Former-commit-id: 9f7890cb1a45f57b549ecccd9962827b6c9ba5be
2020-06-08 15:34:22 -04:00
benschermel
f03f51694c add deb/rpm/docker support
Former-commit-id: 1dc34c16b5cee3ed510c2394f4b528f5702234c9
2020-06-08 15:34:22 -04:00
benschermel
d279e38f8c add deb/rpm/docker support
Former-commit-id: b0e7be7ce2c502127a55af4a331601dbac4bafb7
2020-06-08 15:34:22 -04:00
benschermel
1f331f05ef update github CI for deb
Former-commit-id: 026ab4c922972ab9155ff9fcb7ce8b1b2e3a6714
2020-06-08 15:34:22 -04:00
Ben Schermel
628a9d5cd1 update rpm versioning
Former-commit-id: 07ba64c200176370acad1b4c8be4193e98afa204
2020-06-08 15:34:22 -04:00
benschermel
5ebad6291f add package utilities
Former-commit-id: b4b35cf904cd690cace4fe3cd1fe8accf118c9a4
2020-06-08 15:34:22 -04:00
Salvatore Sanfilippo
37b318c7e0 Merge pull request #7363 from xhebox/unstable
return the correct proto version
2020-06-08 12:54:15 +02:00
Salvatore Sanfilippo
5f1defa179 Merge pull request #7370 from oranagra/no_queue_in_aborted_multi
Don't queue commands in an already aborted MULTI state
2020-06-08 11:08:08 +02:00
Salvatore Sanfilippo
783735c915 Merge pull request #7369 from oranagra/no_reject_watch
Avoid rejecting WATCH / UNWATCH, like MULTI/EXEC/DISCARD
2020-06-08 11:04:26 +02:00
Salvatore Sanfilippo
0c539f6497 Merge pull request #7357 from soloestoy/bugfix-aof-keepttl
AOF: append origin SET if no expire option
2020-06-08 11:02:00 +02:00
Salvatore Sanfilippo
6fed3d8708 Merge pull request #7371 from oranagra/fix_disconnectSlaves
fix disconnectSlaves, to try to free each slave.
2020-06-08 10:43:51 +02:00
Salvatore Sanfilippo
4ea93c04ff Merge pull request #7352 from soloestoy/donot-free-protected-client-when-blocking
donot free protected client in freeClientsInAsyncFreeQueue()
2020-06-08 10:43:17 +02:00
Oran Agra
25ae9c15ce fix disconnectSlaves, to try to free each slave.
the recent change in that loop (iteration rather than waiting for it to
be empty) was intended to avoid an endless loop in case some slave would
refuse to be freed.

but the lookup of the first client remained, which would have caused it
to try the first one again and again instead of moving on.
2020-06-08 09:50:06 +03:00
Oran Agra
0bf6face8a Don't queue commands in an already aborted MULTI state 2020-06-08 09:43:10 +03:00
Oran Agra
b64641f995 Avoid rejecting WATCH / UNWATCH, like MULTI/EXEC/DISCARD
Much like MULTI/EXEC/DISCARD, the WATCH and UNWATCH are not actually
operating on the database or server state, but instead operate on the
client state. the client may send them all in one long pipeline and check
all the responses only at the end, so failing them may lead to a
mismatch between the client state on the server and the one on the
client end, and execute the wrong commands (ones that were meant to be
discarded)

the watched keys are not actually stored in the client struct, but they
are in fact part of the client state. for instance, they're not cleared
or moved in SWAPDB or FLUSHDB.
2020-06-08 09:16:32 +03:00
John Sully
ad4d76422c Some valgrind fixes
Former-commit-id: ba974c9810dc30b6b5bd21c4bcc6cc5b219f7ea4
2020-06-07 23:20:10 -04:00
John Sully
f252cc9e41 fix valgrind false error
Former-commit-id: 9817db7eddf06becd151e5fef7cc6808777c49cb
2020-06-07 20:17:47 -04:00
John Sully
08842f8d6e Endurance mode for tests ignore flaky ones
Former-commit-id: 515bb0e6bda8abcab4f8b4cd693084594c734007
2020-06-07 16:59:59 -04:00
John Sully
0120d23a48 Solo tests should work with loopn
Former-commit-id: bc7ea8fb20c71ace6c35559791e2e8dc6bf4097b
2020-06-07 15:06:50 -04:00
John Sully
97908941bf Stream tests rely on deferring clients, mitigate races caused by them
Former-commit-id: 2caf8e4c8095215b189942b7eaec3bf5023f7fcf
2020-06-07 13:59:41 -04:00
xhe
4c5eb1cac1 return the correct proto version
HELLO should return the current proto version, while the code hardcoded
3
2020-06-07 13:34:55 +08:00
John Sully
7384abfe56 replication test race
Former-commit-id: e1f3cd6ec3bf2319484de04c3796dcfa75e0479c
2020-06-07 01:14:57 -04:00