mirror of https://mirror.osredm.com/root/redis.git
![]() - tests/unit/maxmemory.tcl If multithreaded, we need to let IO threads have chance to reply output buffer, to avoid next commands causing eviction. After eviction is performed, the next command becomes ready immediately in IO threads, and now we enqueue the client to be processed in main thread’s beforeSleep without notification. However, invalidation messages generated by eviction may not have been fully delivered by that time. As a result, executing the command in beforeSleep of the event loop (running eviction) can cause additional keys to be evicted. ``` Expected '73' to be between to '200' and '300' (context: type source line 473 file redis/tests/unit/maxmemory.tcl cmd {assert_range [r dbsize] 200 300} proc ::test) ``` the reason why CI doesn't find this issue is that we skill this test `tsan:skip` as below `start_server {tags {"maxmemory external:skip tsan:skip"}} `,so remove this tag. - tests/integration/aof.tcl Because IO and the main thread are working in better parallelism without notification, the main thread may haven't write AOF buffer into file, but the IO thread just writes the reply, so the clients receive the reply before AOF file is changed. We should use `appendfsync always` policy to make the command is written into AOF file when receiving reply. ``` Expected '0' to be equal to '54' (context: type source line 249 file redis/tests/integration/aof.tcl cmd {assert_equal $before $after} proc ::test) ``` #13969 makes these scenarios easy to appear. |
||
---|---|---|
.. | ||
aof-multi-part.tcl | ||
aof-race.tcl | ||
aof.tcl | ||
block-repl.tcl | ||
convert-ziplist-hash-on-load.tcl | ||
convert-ziplist-zset-on-load.tcl | ||
convert-zipmap-hash-on-load.tcl | ||
corrupt-dump-fuzzer.tcl | ||
corrupt-dump.tcl | ||
dismiss-mem.tcl | ||
failover.tcl | ||
logging.tcl | ||
psync2-master-restart.tcl | ||
psync2-pingoff.tcl | ||
psync2-reg.tcl | ||
psync2.tcl | ||
rdb.tcl | ||
redis-benchmark.tcl | ||
redis-cli.tcl | ||
replication-2.tcl | ||
replication-3.tcl | ||
replication-4.tcl | ||
replication-buffer.tcl | ||
replication-psync.tcl | ||
replication-rdbchannel.tcl | ||
replication.tcl | ||
shutdown.tcl |