From 71fbe6e800a10dabc81b1aec96bcca3b74af7bf4 Mon Sep 17 00:00:00 2001 From: Oran Agra Date: Sat, 2 Jan 2021 08:37:19 +0200 Subject: [PATCH] Fix leak in new errorstats commit, and a flaky test (#8278) --- src/server.c | 2 +- tests/cluster/tests/18-info.tcl | 23 ++++++++++++++++------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/server.c b/src/server.c index dbcaa767d..49ce319c4 100644 --- a/src/server.c +++ b/src/server.c @@ -3301,7 +3301,7 @@ void resetCommandTableStats(void) { } void resetErrorTableStats(void) { - raxFree(server.errors); + raxFreeWithCallback(server.errors, zfree); server.errors = raxNew(); } diff --git a/tests/cluster/tests/18-info.tcl b/tests/cluster/tests/18-info.tcl index 83dbf833f..978d9d1da 100644 --- a/tests/cluster/tests/18-info.tcl +++ b/tests/cluster/tests/18-info.tcl @@ -26,11 +26,20 @@ test "errorstats: rejected call due to MOVED Redirection" { $primary2 config resetstat assert_match {} [errorstat $primary1 MOVED] assert_match {} [errorstat $primary2 MOVED] - # we know that the primary 2 will have a MOVED reply - catch {$primary1 set key{0x0000} b} replyP1 - catch {$primary2 set key{0x0000} b} replyP2 - assert_match {OK} $replyP1 - assert_match {} [errorstat $primary1 MOVED] - assert_match {*count=1*} [errorstat $primary2 MOVED] - assert_match {*calls=0,*,rejected_calls=1,failed_calls=0} [cmdstat $primary2 set] + # we know that one will have a MOVED reply and one will succeed + catch {$primary1 set key b} replyP1 + catch {$primary2 set key b} replyP2 + # sort servers so we know which one failed + if {$replyP1 eq {OK}} { + assert_match {MOVED*} $replyP2 + set pok $primary1 + set perr $primary2 + } else { + assert_match {MOVED*} $replyP1 + set pok $primary2 + set perr $primary1 + } + assert_match {} [errorstat $pok MOVED] + assert_match {*count=1*} [errorstat $perr MOVED] + assert_match {*calls=0,*,rejected_calls=1,failed_calls=0} [cmdstat $perr set] }