From bb325bde355040a91b6d1237fe6965dd4650b2ec Mon Sep 17 00:00:00 2001 From: uriyage <78144248+uriyage@users.noreply.github.com> Date: Wed, 25 Dec 2024 04:58:49 +0200 Subject: [PATCH] Fix restore replica output bytes stat update (#1486) This PR fixes the missing stat update for `total_net_repl_output_bytes` that was removed during the refactoring in PR #758. The metric was not being updated when writing to replica connections. Changes: - Restored the stat update in postWriteToClient for replica connections - Added integration test to verify the metric is properly updated Signed-off-by: Uri Yagelnik Co-authored-by: Binbin --- src/networking.c | 2 ++ tests/integration/replication.tcl | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/networking.c b/src/networking.c index 9f36f24275..d93046a603 100644 --- a/src/networking.c +++ b/src/networking.c @@ -2231,6 +2231,8 @@ int postWriteToClient(client *c) { server.stat_total_writes_processed++; if (getClientType(c) != CLIENT_TYPE_REPLICA) { _postWriteToClient(c); + } else { + server.stat_net_repl_output_bytes += c->nwritten > 0 ? c->nwritten : 0; } if (c->write_flags & WRITE_FLAGS_WRITE_ERROR) { diff --git a/tests/integration/replication.tcl b/tests/integration/replication.tcl index 1b5b0c030a..6d3c4e934f 100644 --- a/tests/integration/replication.tcl +++ b/tests/integration/replication.tcl @@ -194,6 +194,30 @@ start_server {tags {"repl external:skip"}} { } assert_match {*calls=1,*,rejected_calls=0,failed_calls=1*} [cmdrstat blpop $B] } + + test {Replica output bytes metric} { + # reset stats + $A config resetstat + + set info [$A info stats] + set replica_bytes_output [getInfoProperty $info "total_net_repl_output_bytes"] + assert_equal $replica_bytes_output 0 + + # sent set command to primary + $A set key value + + # wait for command propagation + wait_for_condition 50 100 { + [$B get key] eq {value} + } else { + fail "Replica did not receive the command" + } + + # get the new stats + set info [$A info stats] + set replica_bytes_output [getInfoProperty $info "total_net_repl_output_bytes"] + assert_morethan $replica_bytes_output 0 + } } }