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 b77287acf3 Protect against error in Manager shutdownTabletServer when tserver not found (#2766) b77287acf3 is described below commit b77287acf33f2cce28e6639c014f0e677ea29e5f Author: Dave Marion <dlmar...@apache.org> AuthorDate: Mon Jun 13 10:20:04 2022 -0400 Protect against error in Manager shutdownTabletServer when tserver not found (#2766) Closes #2747 --- .../accumulo/manager/ManagerClientServiceHandler.java | 6 +++++- .../org/apache/accumulo/test/functional/ManagerApiIT.java | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/server/manager/src/main/java/org/apache/accumulo/manager/ManagerClientServiceHandler.java b/server/manager/src/main/java/org/apache/accumulo/manager/ManagerClientServiceHandler.java index 020b7bc6e7..7b1aae4c2e 100644 --- a/server/manager/src/main/java/org/apache/accumulo/manager/ManagerClientServiceHandler.java +++ b/server/manager/src/main/java/org/apache/accumulo/manager/ManagerClientServiceHandler.java @@ -261,10 +261,14 @@ public class ManagerClientServiceHandler implements ManagerClientService.Iface { throw new ThriftSecurityException(c.getPrincipal(), SecurityErrorCode.PERMISSION_DENIED); final TServerInstance doomed = manager.tserverSet.find(tabletServer); + if (doomed == null) { + Manager.log.warn("No server found for name {}, unable to shut it down", tabletServer); + return; + } if (!force) { final TServerConnection server = manager.tserverSet.getConnection(doomed); if (server == null) { - Manager.log.warn("No server found for name {}", tabletServer); + Manager.log.warn("No server found for name {}, unable to shut it down", tabletServer); return; } } diff --git a/test/src/main/java/org/apache/accumulo/test/functional/ManagerApiIT.java b/test/src/main/java/org/apache/accumulo/test/functional/ManagerApiIT.java index cec9657605..402d36b4d9 100644 --- a/test/src/main/java/org/apache/accumulo/test/functional/ManagerApiIT.java +++ b/test/src/main/java/org/apache/accumulo/test/functional/ManagerApiIT.java @@ -313,6 +313,20 @@ public class ManagerApiIT extends SharedMiniClusterBase { expectPermissionSuccess(op, privilegedUser); } + @Test + public void shutdownTabletServer() throws Exception { + op = client -> { + client.shutdownTabletServer(TraceUtil.traceInfo(), rootUser.toThrift(instanceId), + "fakeTabletServer:9997", true); + return null; + }; + try (AccumuloClient client = Accumulo.newClient().from(getClientProps()) + .as(rootUser.getPrincipal(), rootUser.getToken()).build()) { + ClientContext context = (ClientContext) client; + ThriftClientTypes.MANAGER.execute(context, op); + } + } + // this test should go last, because it shuts things down; // see the junit annotation to control test ordering at the top of this class @Test