From 87cc3d7a716f28af33a9c7ab017b81831016ab87 Mon Sep 17 00:00:00 2001 From: Harkrishn Patro Date: Thu, 16 Jan 2025 11:25:37 -0800 Subject: [PATCH] Fix cluster info sent stats for message with light header (#1563) This issue affected only two message types (CLUSTERMSG_TYPE_PUBLISH and CLUSTERMSG_TYPE_PUBLISHSHARD) because they used a light message header, which caused the CLUSTER INFO stats to miss sent/received message information for those types. --------- Signed-off-by: Harkrishn Patro Signed-off-by: Harkrishn Patro Co-authored-by: Binbin --- src/cluster_legacy.c | 2 +- tests/unit/cluster/pubsub.tcl | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/cluster_legacy.c b/src/cluster_legacy.c index 5c4bb65aae..a171fe3fda 100644 --- a/src/cluster_legacy.c +++ b/src/cluster_legacy.c @@ -3920,7 +3920,7 @@ void clusterSendMessage(clusterLink *link, clusterMsgSendBlock *msgblock) { server.stat_cluster_links_memory += sizeof(listNode); /* Populate sent messages stats. */ - uint16_t type = ntohs(getMessageFromSendBlock(msgblock)->type); + uint16_t type = ntohs(getMessageFromSendBlock(msgblock)->type) & ~CLUSTERMSG_MODIFIER_MASK; if (type < CLUSTERMSG_TYPE_COUNT) server.cluster->stats_bus_messages_sent[type]++; } diff --git a/tests/unit/cluster/pubsub.tcl b/tests/unit/cluster/pubsub.tcl index 12cb409fd9..5b62c96da7 100644 --- a/tests/unit/cluster/pubsub.tcl +++ b/tests/unit/cluster/pubsub.tcl @@ -34,5 +34,17 @@ test "Test publishing to master" { test "Test publishing to slave" { test_cluster_publish 5 10 } - } ;# start_cluster + +start_cluster 3 0 {tags {external:skip cluster}} { + test "Test cluster info stats for publish" { + R 0 PUBLISH hello world + assert_equal 2 [CI 0 cluster_stats_messages_publish_sent] + wait_for_condition 50 100 { + [CI 1 cluster_stats_messages_publish_received] eq 1 && + [CI 2 cluster_stats_messages_publish_received] eq 1 + } else { + fail "node 2 or node 3 didn't receive clusterbus publish packet" + } + } +}