From 9052787de6da95b88fc0773f759788f470de90a4 Mon Sep 17 00:00:00 2001 From: uriyage <78144248+uriyage@users.noreply.github.com> Date: Thu, 22 Aug 2024 03:02:57 +0300 Subject: [PATCH] Skip tracking clients OOM test when I/O threads are enabled (#764) Fix feedback loop in key eviction with tracking clients when using I/O threads. Current issue: Evicting keys while tracking clients or key space-notification exist creates a feedback loop when using I/O threads: While evicting keys we send tracking async writes to I/O threads, preventing immediate release of tracking clients' COB memory consumption. Before the I/O thread finishes its write, we recheck used_memory, which now includes the tracking clients' COB and thus continue to evict more keys. **Fix:** We will skip the test for now while IO threads are active. We may consider avoiding sending writes in `processPendingWrites` to I/O threads for tracking clients when we are out of memory. --------- Signed-off-by: Uri Yagelnik Signed-off-by: Madelyn Olson Co-authored-by: Madelyn Olson Signed-off-by: Ping Xie --- tests/support/server.tcl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/support/server.tcl b/tests/support/server.tcl index 68223cce11..e8f9f8fb44 100644 --- a/tests/support/server.tcl +++ b/tests/support/server.tcl @@ -241,6 +241,11 @@ proc tags_acceptable {tags err_return} { return 0 } + if {$::io_threads && [lsearch $tags "io-threads:skip"] >= 0} { + set err "Not supported in io-threads mode" + return 0 + } + if {$::tcl_version < 8.6 && [lsearch $tags "ipv6"] >= 0} { set err "TCL version is too low and does not support this" return 0