123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- start_server {tags {"aofrw"}} {
- test {Turning off AOF kills the background writing child if any} {
- r config set appendonly yes
- waitForBgrewriteaof r
- r multi
- r bgrewriteaof
- r config set appendonly no
- r exec
- wait_for_condition 50 100 {
- [string match {*Killing*AOF*child*} [exec tail -n5 < [srv 0 stdout]]]
- } else {
- fail "Can't find 'Killing AOF child' into recent logs"
- }
- }
- foreach d {string int} {
- foreach e {ziplist linkedlist} {
- test "AOF rewrite of list with $e encoding, $d data" {
- r flushall
- if {$e eq {ziplist}} {set len 10} else {set len 1000}
- for {set j 0} {$j < $len} {incr j} {
- if {$d eq {string}} {
- set data [randstring 0 16 alpha]
- } else {
- set data [randomInt 4000000000]
- }
- r lpush key $data
- }
- assert_equal [r object encoding key] $e
- set d1 [r debug digest]
- r bgrewriteaof
- waitForBgrewriteaof r
- r debug loadaof
- set d2 [r debug digest]
- if {$d1 ne $d2} {
- error "assertion:$d1 is not equal to $d2"
- }
- }
- }
- }
- foreach d {string int} {
- foreach e {intset hashtable} {
- test "AOF rewrite of set with $e encoding, $d data" {
- r flushall
- if {$e eq {intset}} {set len 10} else {set len 1000}
- for {set j 0} {$j < $len} {incr j} {
- if {$d eq {string}} {
- set data [randstring 0 16 alpha]
- } else {
- set data [randomInt 4000000000]
- }
- r sadd key $data
- }
- if {$d ne {string}} {
- assert_equal [r object encoding key] $e
- }
- set d1 [r debug digest]
- r bgrewriteaof
- waitForBgrewriteaof r
- r debug loadaof
- set d2 [r debug digest]
- if {$d1 ne $d2} {
- error "assertion:$d1 is not equal to $d2"
- }
- }
- }
- }
- foreach d {string int} {
- foreach e {ziplist hashtable} {
- test "AOF rewrite of hash with $e encoding, $d data" {
- r flushall
- if {$e eq {ziplist}} {set len 10} else {set len 1000}
- for {set j 0} {$j < $len} {incr j} {
- if {$d eq {string}} {
- set data [randstring 0 16 alpha]
- } else {
- set data [randomInt 4000000000]
- }
- r hset key $data $data
- }
- assert_equal [r object encoding key] $e
- set d1 [r debug digest]
- r bgrewriteaof
- waitForBgrewriteaof r
- r debug loadaof
- set d2 [r debug digest]
- if {$d1 ne $d2} {
- error "assertion:$d1 is not equal to $d2"
- }
- }
- }
- }
- foreach d {string int} {
- foreach e {ziplist skiplist} {
- test "AOF rewrite of zset with $e encoding, $d data" {
- r flushall
- if {$e eq {ziplist}} {set len 10} else {set len 1000}
- for {set j 0} {$j < $len} {incr j} {
- if {$d eq {string}} {
- set data [randstring 0 16 alpha]
- } else {
- set data [randomInt 4000000000]
- }
- r zadd key [expr rand()] $data
- }
- assert_equal [r object encoding key] $e
- set d1 [r debug digest]
- r bgrewriteaof
- waitForBgrewriteaof r
- r debug loadaof
- set d2 [r debug digest]
- if {$d1 ne $d2} {
- error "assertion:$d1 is not equal to $d2"
- }
- }
- }
- }
- test {BGREWRITEAOF is delayed if BGSAVE is in progress} {
- r multi
- r bgsave
- r bgrewriteaof
- r info persistence
- set res [r exec]
- assert_match {*scheduled*} [lindex $res 1]
- assert_match {*aof_rewrite_scheduled:1*} [lindex $res 2]
- while {[string match {*aof_rewrite_scheduled:1*} [r info persistence]]} {
- after 100
- }
- }
- test {BGREWRITEAOF is refused if already in progress} {
- catch {
- r multi
- r bgrewriteaof
- r bgrewriteaof
- r exec
- } e
- assert_match {*ERR*already*} $e
- while {[string match {*aof_rewrite_scheduled:1*} [r info persistence]]} {
- after 100
- }
- }
- }
|