diff --git a/documentation/sphinx/source/release-notes.rst b/documentation/sphinx/source/release-notes.rst index 772e2d1086..e9be8381e6 100644 --- a/documentation/sphinx/source/release-notes.rst +++ b/documentation/sphinx/source/release-notes.rst @@ -9,6 +9,7 @@ Fixes ----- * Storage servers could fail to advance their version correctly in response to empty commits. `(PR #2617) `_. +* Status could not label more than 5 processes as proxies. `(PR #2653) `_. * The ``TR_FLAG_DISABLE_MACHINE_TEAM_REMOVER``, ``TR_FLAG_REMOVE_MT_WITH_MOST_TEAMS``, ``TR_FLAG_DISABLE_SERVER_TEAM_REMOVER``, and ``BUGGIFY_ALL_COORDINATION`` knobs could not be set at runtime. `(PR #2661) `_. 6.2.15 diff --git a/fdbserver/Status.actor.cpp b/fdbserver/Status.actor.cpp index 70e71e922e..835848ce0f 100644 --- a/fdbserver/Status.actor.cpp +++ b/fdbserver/Status.actor.cpp @@ -1544,17 +1544,9 @@ ACTOR static Future>> getTLogsAndMetri return results; } -ACTOR static Future>> getProxiesAndMetrics(Database cx, std::unordered_map address_workers) { - Reference proxyInfo = cx->getMasterProxies(false); - std::vector servers; - if(proxyInfo) { - for(int i = 0; i < proxyInfo->size(); ++i) { - servers.push_back(proxyInfo->getInterface(i)); - } - } - +ACTOR static Future>> getProxiesAndMetrics(Reference>> db, std::unordered_map address_workers) { vector> results = wait(getServerMetrics( - servers, address_workers, std::vector{ "GRVLatencyMetrics", "CommitLatencyMetrics" })); + db->get().read().client.proxies, address_workers, std::vector{ "GRVLatencyMetrics", "CommitLatencyMetrics" })); return results; } @@ -2308,7 +2300,7 @@ ACTOR Future clusterGetStatus( state Future>>> storageServerFuture = errorOr(getStorageServersAndMetrics(cx, address_workers)); state Future>>> tLogFuture = errorOr(getTLogsAndMetrics(db, address_workers)); - state Future>>> proxyFuture = errorOr(getProxiesAndMetrics(cx, address_workers)); + state Future>>> proxyFuture = errorOr(getProxiesAndMetrics(db, address_workers)); state int minReplicasRemaining = -1; std::vector> futures2;