This is an automated email from the ASF dual-hosted git repository. dlmarion pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/elasticity by this push: new 2782d1d5d2 Re-read tablet metadata after setting location (#3862) 2782d1d5d2 is described below commit 2782d1d5d2f0f4f41fd387e0d451f9d4d4a22124 Author: Dave Marion <dlmar...@apache.org> AuthorDate: Wed Oct 18 15:10:01 2023 -0400 Re-read tablet metadata after setting location (#3862) Fixes #3358 --- .../src/main/java/org/apache/accumulo/tserver/AssignmentHandler.java | 5 +++++ .../src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/AssignmentHandler.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/AssignmentHandler.java index f4cac95747..3bbbd4c1eb 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/AssignmentHandler.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/AssignmentHandler.java @@ -44,6 +44,7 @@ import org.apache.accumulo.server.problems.ProblemReports; import org.apache.accumulo.tserver.TabletServerResourceManager.TabletResourceManager; import org.apache.accumulo.tserver.managermessage.TabletStatusMessage; import org.apache.accumulo.tserver.tablet.Tablet; +import org.apache.accumulo.tserver.tablet.Tablet.RefreshPurpose; import org.apache.hadoop.io.Text; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -178,10 +179,14 @@ class AssignmentHandler implements Runnable { && !tablet.minorCompactNow(MinorCompactionReason.RECOVERY)) { throw new RuntimeException("Minor compaction after recovery fails for " + extent); } + Assignment assignment = new Assignment(extent, server.getTabletSession(), tabletMetadata.getLast()); TabletStateStore.setLocation(server.getContext(), assignment); + // refresh the tablet metadata after setting the location (See #3358) + tablet.refreshMetadata(RefreshPurpose.LOAD); + synchronized (server.openingTablets) { synchronized (server.onlineTablets) { server.openingTablets.remove(extent); diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java index 5bdba6c364..608603cea5 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java @@ -1455,7 +1455,7 @@ public class Tablet extends TabletBase { } public enum RefreshPurpose { - MINC_COMPLETION, REFRESH_RPC, FLUSH_ID_UPDATE + MINC_COMPLETION, REFRESH_RPC, FLUSH_ID_UPDATE, LOAD } public void refreshMetadata(RefreshPurpose refreshPurpose) {