- 23 Jun, 2020 1 commit
-
-
Oran Agra authored
In order to support the use of multi-exec in pipeline, it is important that MULTI and EXEC are never rejected and it is easy for the client to know if the connection is still in multi state. It was easy to make sure MULTI and DISCARD never fail (done by previous commits) since these only change the client state and don't do any actual change in the server, but EXEC is a different story. Since in the past, it was possible for clients to handle some EXEC errors and retry the EXEC, we now can't affort to return any error on EXEC other than EXECABORT, which now carries with it the real reason for the abort too. Other fixes in this commit: - Some checks that where performed at the time of queuing need to be re- validated when EXEC runs, for instance if the transaction contains writes commands, it needs to be aborted. there was one check that was already done in execCommand (-READONLY), but other checks where missing: -OOM, -MISCONF, -NOREPLICAS, -MASTERDOWN - When a command is rejected by processCommand it was rejected with addReply, which was not recognized as an error in case the bad command came from the master. this will enable to count or MONITOR these errors in the future. - make it easier for tests to create additional (non deferred) clients. - add tests for the fixes of this commit.
-
- 09 Jun, 2020 2 commits
- 08 Jun, 2020 9 commits
-
-
Salvatore Sanfilippo authored
return the correct proto version
-
Salvatore Sanfilippo authored
Don't queue commands in an already aborted MULTI state
-
Salvatore Sanfilippo authored
Avoid rejecting WATCH / UNWATCH, like MULTI/EXEC/DISCARD
-
Salvatore Sanfilippo authored
AOF: append origin SET if no expire option
-
Salvatore Sanfilippo authored
fix disconnectSlaves, to try to free each slave.
-
Salvatore Sanfilippo authored
donot free protected client in freeClientsInAsyncFreeQueue()
-
Oran Agra authored
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.
-
Oran Agra authored
-
Oran Agra authored
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.
-
- 07 Jun, 2020 1 commit
-
-
xhe authored
HELLO should return the current proto version, while the code hardcoded 3
-
- 06 Jun, 2020 3 commits
-
-
antirez authored
-
- 03 Jun, 2020 1 commit
-
-
zhaozhao.zz authored
-
- 02 Jun, 2020 1 commit
-
-
zhaozhao.zz authored
related #7234
-
- 31 May, 2020 3 commits
-
-
Salvatore Sanfilippo authored
fix pingoff test race
-
Oran Agra authored
-
Salvatore Sanfilippo authored
Fix TLS certificate loading for chained certificates.
-
- 29 May, 2020 3 commits
-
-
antirez authored
-
antirez authored
Now it is also possible for ACL SETUSER to accept empty strings as valid operations (doing nothing), so for instance ACL SETUSER myuser "" Will have just the effect of creating a user in the default state. This should fix #7329.
-
Salvatore Sanfilippo authored
fix clusters mixing accidentally by gossip
-
- 28 May, 2020 9 commits
-
-
antirez authored
This will likely avoid false positives due to trailing pings.
-
antirez authored
-
antirez authored
-
antirez authored
-
Salvatore Sanfilippo authored
tests: each test client work on a distinct port range
-
Salvatore Sanfilippo authored
32bit CI needs to build modules correctly
-
Salvatore Sanfilippo authored
Revive and adjust meaningful offset tests
-
Oran Agra authored
these tests create several edge cases that are otherwise uncovered (at least not consistently) by the test suite, so although they're no longer testing what they were meant to test, it's still a good idea to keep them in hope that they'll expose some issue in the future.
-
Oran Agra authored
-
- 27 May, 2020 7 commits
-
-
Oran Agra authored
-
antirez authored
-
Oran Agra authored
i.e. don't start the search from scratch hitting the used ones again. this will also reduce the likelihood of collisions (if there are any left) by increasing the time until we re-use a port we did use in the past.
-
Kevin Fwu authored
This impacts client verification for chained certificates (such as Lets Encrypt certificates). Client Verify requires the full chain in order to properly verify the certificate.
-
antirez authored
-
antirez authored
-
antirez authored
After a closer look, the Redis core devleopers all believe that this was too fragile, caused many bugs that we didn't expect and that were very hard to track. Better to find an alternative solution that is simpler.
-