This is an automated email from the ASF dual-hosted git repository.
dlmarion pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/main by this push:
new c63a556e79 Modified Manager to wait for accumulo.fate table before
starting Fate (#5645)
c63a556e79 is described below
commit c63a556e79fa8a236aac102af7fc1c3584f5886b
Author: Dave Marion <[email protected]>
AuthorDate: Fri Jun 13 14:55:32 2025 -0400
Modified Manager to wait for accumulo.fate table before starting Fate
(#5645)
Closes #5644
---
.../main/java/org/apache/accumulo/manager/Manager.java | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git
a/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
b/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
index bdf6507ed0..f16d83e0a9 100644
--- a/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
+++ b/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
@@ -60,6 +60,7 @@ import java.util.stream.Collectors;
import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.cli.ConfigOpts;
+import org.apache.accumulo.core.client.TableNotFoundException;
import org.apache.accumulo.core.client.admin.CompactionConfig;
import org.apache.accumulo.core.client.admin.servers.ServerId;
import org.apache.accumulo.core.client.admin.servers.ServerId.Type;
@@ -1333,6 +1334,20 @@ public class Manager extends AbstractServer implements
LiveTServerSet.Listener {
lock -> ServiceLock.isLockHeld(context.getZooCache(), lock);
var metaInstance = initializeFateInstance(context,
new MetaFateStore<>(context.getZooSession(),
managerLock.getLockID(), isLockHeld));
+
+ // If an upgrade occurred, then it's possible that the client may not yet
+ // be aware of the table. Wait for the table to be known to prevent an
+ // error when creating the UserFateStore.
+ while (true) {
+ try {
+ context.getTableId(SystemTables.FATE.tableName());
+ break;
+ } catch (TableNotFoundException e) {
+ log.trace("Waiting for client to become aware of user fate table");
+ Thread.sleep(100);
+ }
+ }
+
var userInstance = initializeFateInstance(context, new
UserFateStore<>(context,
SystemTables.FATE.tableName(), managerLock.getLockID(), isLockHeld));