Upgrade urgency HIGH: Several potentially critical bugs fixed.
- A number of bugs were fixed in the area of PSYNC2 replication in the
specific area of restarting an instance with an RDB file having the
repliacation meta-data to continue without a full resynchronization. The
old code allowed several inconsistencies under certain conditions, like
starting a master with an RDB file generated by a slave, and later using
such master to connect previous slaves having the same replication history.
Because of other bugs, sometimes the replication resulted in a full
synchronization even if actually a partial resynchronization was possible
and so forth. Several commits by different authors fix different bugs here.
- AOF flush on SHUTDOWN did not cared to really write the AOF buffers
(not in the kernel but in the Redis process memory) to disk before exiting.
Calling SHUTDOWN during traffic resulted into not every operation to be
persisted on disk.
- The SLOWLOG could reference values inside string objects stored at keys,
creating a race condition during FLUSHALL ASYNC while the DB is reclaimed
in another thread.