redict/src
antirez 3d1391272a Safer handling of MULTI/EXEC on errors.
After the transcation starts with a MULIT, the previous behavior was to
return an error on problems such as maxmemory limit reached. But still
to execute the transaction with the subset of queued commands on EXEC.

While it is true that the client was able to check for errors
distinguish QUEUED by an error reply, MULTI/EXEC in most client
implementations uses pipelining for speed, so all the commands and EXEC
are sent without caring about replies.

With this change:

1) EXEC fails if at least one command was not queued because of an
error. The EXECABORT error is used.
2) A generic error is always reported on EXEC.
3) The client DISCARDs the MULTI state after a failed EXEC, otherwise
pipelining multiple transactions would be basically impossible:
After a failed EXEC the next transaction would be simply queued as
the tail of the previous transaction.
2012-11-22 10:32:07 +01:00
..
.gitignore Ignore gcov/lcov artifacts 2012-04-13 17:52:33 -07:00
adlist.c Process async client checks like client timeouts and BLPOP timeouts incrementally using a circular list. 2012-03-13 18:05:11 +01:00
adlist.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
ae_epoll.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
ae_evport.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
ae_kqueue.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
ae_select.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
ae.c Include time.h in ae.c as we now use time(). 2012-10-05 10:10:43 +02:00
ae.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
anet.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
anet.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
aof.c Children creating AOF or RDB files now report memory used by COW. 2012-11-19 12:02:08 +01:00
asciilogo.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
bio.c Make bio.c threads killable ASAP if needed. 2012-11-22 10:12:11 +01:00
bio.h Make bio.c threads killable ASAP if needed. 2012-11-22 10:12:11 +01:00
bitops.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
cluster.c MIGRATE: retry one time on I/O error. 2012-11-14 11:30:24 +01:00
config.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
config.h Use more fine grained HAVE macros instead of HAVE_PROCFS. 2012-11-21 13:17:38 +01:00
crc16.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
crc64.c crc64.c modified for incremental computation. 2012-04-09 12:20:47 +02:00
db.c TTL API change: TTL returns -2 for non existing keys. 2012-11-12 23:04:36 +01:00
debug.c Make bio.c threads killable ASAP if needed. 2012-11-22 10:12:11 +01:00
dict.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
dict.h Merge pull request #693 from ghurrell/dict-h-typos 2012-10-22 02:55:23 -07:00
endianconv.c endian.c/h -> endianconv.c/h to avoid issues with broken libraries search paths. 2012-02-14 16:11:46 +01:00
endianconv.h Add stdint.h in endianconv.h to fix issue #336. 2012-02-15 12:21:04 +01:00
fmacros.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
help.h help.h update (adds bitop, bitcount, evalsha...) 2012-10-30 18:57:20 +01:00
intset.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
intset.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
lzf_c.c redis.c split into many different C files. 2010-07-01 14:38:51 +02:00
lzf_d.c redis.c split into many different C files. 2010-07-01 14:38:51 +02:00
lzf.h redis.c split into many different C files. 2010-07-01 14:38:51 +02:00
lzfP.h redis.c split into many different C files. 2010-07-01 14:38:51 +02:00
Makefile First implementation of Redis Sentinel. 2012-07-23 13:14:44 +02:00
Makefile.dep Makefile.dep updated. 2012-04-11 12:12:30 +02:00
memtest.c Fast memory test on Redis crash. 2012-11-21 13:24:44 +01:00
mkreleasehdr.sh redis.c split into many different C files. 2010-07-01 14:38:51 +02:00
multi.c Safer handling of MULTI/EXEC on errors. 2012-11-22 10:32:07 +01:00
networking.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
object.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
pqsort.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
pqsort.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
pubsub.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
rand.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
rand.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
rdb.c Children creating AOF or RDB files now report memory used by COW. 2012-11-19 12:02:08 +01:00
rdb.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
redis-benchmark.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
redis-check-aof.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
redis-check-dump.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
redis-cli.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
redis-trib.rb redis-trib: fix the MIGRATE call that now has milliseconds timeout (were seconds before). 2012-03-31 11:28:37 +02:00
redis.c Safer handling of MULTI/EXEC on errors. 2012-11-22 10:32:07 +01:00
redis.h Safer handling of MULTI/EXEC on errors. 2012-11-22 10:32:07 +01:00
release.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
replication.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
rio.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
rio.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
scripting.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
sds.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
sds.h Added consts keyword where possible 2012-03-30 21:19:51 +02:00
sentinel.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
sha1.c byte ordering detection in config.h 2011-03-09 15:44:21 +01:00
sha1.h redis.c split into many different C files. 2010-07-01 14:38:51 +02:00
slowlog.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
slowlog.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
solarisfixes.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
sort.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
syncio.c syncio.c read / write functions reworked for correctness and performance. 2012-05-02 22:41:50 +02:00
t_hash.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
t_list.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
t_set.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
t_string.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
t_zset.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
testhelp.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
util.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
util.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
valgrind.sup more valgrind friendly test 2011-07-06 15:22:00 +02:00
version.h Version 2.9.7. 2012-04-10 16:34:33 +02:00
ziplist.c BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
ziplist.h BSD license added to every C source and header file. 2012-11-08 18:31:32 +01:00
zipmap.c Fixed some spelling errors in the comments 2012-04-07 14:40:29 +02:00
zipmap.h save zipmap encoded hashes as blobs. Work in progress. 2011-02-28 09:56:48 +01:00
zmalloc.c Use more fine grained HAVE macros instead of HAVE_PROCFS. 2012-11-21 13:17:38 +01:00
zmalloc.h zmalloc_get_private_dirty() function added (Linux only). 2012-11-19 11:47:35 +01:00