#8277·dragonfly

Expired keys are served during CLIENT PAUSE: GET, EXISTS and DBSIZE return stale data

Author: vyavdoshenkoCreated Sep 9, 2026Updated Sep 9, 2026
Labelsbug

Found while running the Valkey TCL suite (unit/pause and unit/expire) against Dragonfly. While a write pause is active, passive expiry is disabled and read commands return keys that are already past their expiry, so GET returns the value, EXISTS returns 1 and DBSIZE counts the key.

Reproduce (issue the reads from a second connection so they are not themselves paused):

redis-cli set ek v px 100
redis-cli client pause 3000 write
sleep 0.4                          # ek expired about 300 ms ago
redis-cli get ek                   # v      (should be nil)
redis-cli exists ek                # 1      (should be 0)
redis-cli dbsize                   # 1      (should be 0)