Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Don't expire keys when loading an RDB after a SYNC
The cron is responsible for expiring keys. When keys are expired at load time, it is possible that the snapshot of a master node gets modified. This can in turn lead to inconsistencies in the data set. A more concrete example of this behavior follows. A user reported a slave that would show an monotonically increase input buffer length, shortly after completing a SYNC. Also, `INFO` output showed a single blocked client, which could only be the master link. Investigation showed that indeed the `BRPOP` command was fed by the master. This command can only end up in the stream of write operations when it did NOT block, and effectively executed `RPOP`. However, when the key involved in the `BRPOP` is expired BEFORE the command is executed, the client executing it will block. The client in this case, is the master link.
- Loading branch information