From eb7946bc1f8536750e1b01cb1a579fcdef940ea9 Mon Sep 17 00:00:00 2001 From: Reuben Bond Date: Mon, 10 Aug 2026 18:17:32 -0700 Subject: [PATCH] fix(zookeeper): tolerate transient connection loss Increase the ZooKeeper session retry window so brief disconnects do not fail membership operations. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../ZooKeeperBasedMembershipTable.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Orleans.Clustering.ZooKeeper/ZooKeeperBasedMembershipTable.cs b/src/Orleans.Clustering.ZooKeeper/ZooKeeperBasedMembershipTable.cs index e247b056413..bc5e4378535 100644 --- a/src/Orleans.Clustering.ZooKeeper/ZooKeeperBasedMembershipTable.cs +++ b/src/Orleans.Clustering.ZooKeeper/ZooKeeperBasedMembershipTable.cs @@ -38,7 +38,7 @@ public partial class ZooKeeperBasedMembershipTable : IMembershipTable { private readonly ILogger logger; - private const int ZOOKEEPER_CONNECTION_TIMEOUT = 2000; + private const int ZOOKEEPER_SESSION_TIMEOUT = 10_000; private readonly ZooKeeperWatcher watcher; @@ -297,12 +297,12 @@ private static async Task> GetRow(ZooKeeper zk, S private static Task UsingZookeeper(Func> zkMethod, string deploymentConnectionString, ZooKeeperWatcher watcher, bool canBeReadOnly = false) { - return ZooKeeper.Using(deploymentConnectionString, ZOOKEEPER_CONNECTION_TIMEOUT, watcher, zkMethod, canBeReadOnly); + return ZooKeeper.Using(deploymentConnectionString, ZOOKEEPER_SESSION_TIMEOUT, watcher, zkMethod, canBeReadOnly); } private Task UsingZookeeper(string connectString, Func zkMethod) { - return ZooKeeper.Using(connectString, ZOOKEEPER_CONNECTION_TIMEOUT, watcher, zkMethod); + return ZooKeeper.Using(connectString, ZOOKEEPER_SESSION_TIMEOUT, watcher, zkMethod); } private static string ConvertToRowPath(SiloAddress siloAddress)