redis/tests
Oran Agra 65a3307bc9 EXEC always fails with EXECABORT and multi-state is cleared
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.
2020-06-23 12:01:33 +03:00
..
assets Fix test "server is up" detection after logging changes. 2016-12-19 16:49:58 +01:00
cluster Add a test to prove current tcl cluster client can not handle keys with hash tag. 2020-05-11 13:14:18 +08:00
helpers revert an accidental test code change done as part of the tls project 2019-12-01 16:10:09 +02:00
integration fix pingoff test race 2020-05-31 15:51:52 +03:00
modules 32bit CI needs to build modules correctly 2020-05-27 18:19:30 +03:00
sentinel TLS: Configuration options. 2019-10-07 21:07:27 +03:00
support tests: find_available_port start search from next port 2020-05-27 16:12:35 +03:00
tmp minor fixes to the new test suite, html doc updated 2010-05-14 18:48:33 +02:00
unit EXEC always fails with EXECABORT and multi-state is cleared 2020-06-23 12:01:33 +03:00
instances.tcl tests: each test client work on a distinct port range 2020-05-26 11:17:08 +03:00
test_helper.tcl EXEC always fails with EXECABORT and multi-state is cleared 2020-06-23 12:01:33 +03:00