From 2b702880c19e11be077ddcc540aeacd80ecfcaf6 Mon Sep 17 00:00:00 2001 From: Tom Pantelis Date: Thu, 29 Nov 2018 22:00:34 -0500 Subject: [PATCH] Improve error reporting for tell-based reads Added contextual info similar to ask-based, including the yang path of the requested read and the backend shard name. Also wrapped RequestTimeoutException with DataStoreUnavailableException. Change-Id: I5487e5531034cc1abbda27a4953897da7212eba8 Signed-off-by: Tom Pantelis --- .../client/AbstractClientConnection.java | 19 ++++++--- .../cluster/access/client/BackendInfo.java | 9 +++- .../access/client/BackendInfoResolver.java | 3 ++ .../access/client/ClientActorBehavior.java | 3 +- .../client/ConnectingClientConnection.java | 4 +- .../access/client/AccessClientUtil.java | 3 +- .../client/ConnectedClientConnectionTest.java | 9 ++-- .../ConnectingClientConnectionTest.java | 8 ++-- .../ReconnectingClientConnectionTest.java | 9 ++-- .../client/TransmittingTransmitQueueTest.java | 2 +- .../dds/ModuleShardBackendResolver.java | 8 +++- .../actors/dds/RemoteProxyTransaction.java | 41 ++++++++++--------- .../actors/dds/ShardBackendInfo.java | 10 +---- .../dds/SimpleShardBackendResolver.java | 5 +++ .../dds/ModuleShardBackendResolverTest.java | 2 +- 15 files changed, 82 insertions(+), 53 deletions(-) diff --git a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/AbstractClientConnection.java b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/AbstractClientConnection.java index 7375fe06d9..c32f7b2532 100644 --- a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/AbstractClientConnection.java +++ b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/AbstractClientConnection.java @@ -78,6 +78,7 @@ public abstract class AbstractClientConnection { @GuardedBy("lock") private final TransmitQueue queue; private final Long cookie; + private final String backendName; @GuardedBy("lock") private boolean haveTimer; @@ -90,9 +91,11 @@ public abstract class AbstractClientConnection { private volatile RequestException poisoned; // Private constructor to avoid code duplication. - private AbstractClientConnection(final AbstractClientConnection oldConn, final TransmitQueue newQueue) { + private AbstractClientConnection(final AbstractClientConnection oldConn, final TransmitQueue newQueue, + final String backendName) { this.context = Preconditions.checkNotNull(oldConn.context); this.cookie = Preconditions.checkNotNull(oldConn.cookie); + this.backendName = Preconditions.checkNotNull(backendName); this.queue = Preconditions.checkNotNull(newQueue); // Will be updated in finishReplay if needed. this.lastReceivedTicks = oldConn.lastReceivedTicks; @@ -100,9 +103,11 @@ public abstract class AbstractClientConnection { // This constructor is only to be called by ConnectingClientConnection constructor. // Do not allow subclassing outside of this package - AbstractClientConnection(final ClientActorContext context, final Long cookie, final int queueDepth) { + AbstractClientConnection(final ClientActorContext context, final Long cookie, final String backendName, + final int queueDepth) { this.context = Preconditions.checkNotNull(context); this.cookie = Preconditions.checkNotNull(cookie); + this.backendName = Preconditions.checkNotNull(backendName); this.queue = new TransmitQueue.Halted(queueDepth); this.lastReceivedTicks = currentTime(); } @@ -110,14 +115,15 @@ public abstract class AbstractClientConnection { // This constructor is only to be called (indirectly) by ReconnectingClientConnection constructor. // Do not allow subclassing outside of this package AbstractClientConnection(final AbstractClientConnection oldConn) { - this(oldConn, new TransmitQueue.Halted(oldConn.queue, oldConn.currentTime())); + this(oldConn, new TransmitQueue.Halted(oldConn.queue, oldConn.currentTime()), oldConn.backendName); } // This constructor is only to be called (indirectly) by ConnectedClientConnection constructor. // Do not allow subclassing outside of this package - AbstractClientConnection(final AbstractClientConnection oldConn, final T newBackend, final int queueDepth) { + AbstractClientConnection(final AbstractClientConnection oldConn, final T newBackend, + final int queueDepth) { this(oldConn, new TransmitQueue.Transmitting(oldConn.queue, queueDepth, newBackend, oldConn.currentTime(), - Preconditions.checkNotNull(oldConn.context).messageSlicer())); + Preconditions.checkNotNull(oldConn.context).messageSlicer()), newBackend.getName()); } public final ClientActorContext context() { @@ -422,7 +428,8 @@ public abstract class AbstractClientConnection { context.executeInActor(current -> { final double time = beenOpen * 1.0 / 1_000_000_000; entry.complete(entry.getRequest().toRequestFailure( - new RequestTimeoutException(entry.getRequest() + " timed out after " + time + " seconds"))); + new RequestTimeoutException(entry.getRequest() + " timed out after " + time + + " seconds. The backend for " + backendName + " is not available."))); return current; }); } diff --git a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/BackendInfo.java b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/BackendInfo.java index cea174b74d..01aff95532 100644 --- a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/BackendInfo.java +++ b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/BackendInfo.java @@ -29,10 +29,13 @@ public class BackendInfo { private final ActorRef actor; private final int maxMessages; private final long sessionId; + private final String name; - protected BackendInfo(final ActorRef actor, final long sessionId, final ABIVersion version, final int maxMessages) { + protected BackendInfo(final ActorRef actor, final String name, final long sessionId, final ABIVersion version, + final int maxMessages) { this.version = Preconditions.checkNotNull(version); this.actor = Preconditions.checkNotNull(actor); + this.name = Preconditions.checkNotNull(name); Preconditions.checkArgument(maxMessages > 0, "Maximum messages has to be positive, not %s", maxMessages); this.maxMessages = maxMessages; this.sessionId = sessionId; @@ -42,6 +45,10 @@ public class BackendInfo { return actor; } + public final String getName() { + return name; + } + public final ABIVersion getVersion() { return version; } diff --git a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/BackendInfoResolver.java b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/BackendInfoResolver.java index 3c6e093bfb..fc633adaa6 100644 --- a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/BackendInfoResolver.java +++ b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/BackendInfoResolver.java @@ -59,6 +59,9 @@ public abstract class BackendInfoResolver implements Auto @Nonnull public abstract Registration notifyWhenBackendInfoIsStale(Consumer callback); + @Nonnull + public abstract String resolveCookieName(Long cookie); + @Override public void close() { } diff --git a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ClientActorBehavior.java b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ClientActorBehavior.java index ddf1dc190b..6ede15bf40 100644 --- a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ClientActorBehavior.java +++ b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ClientActorBehavior.java @@ -440,7 +440,8 @@ public abstract class ClientActorBehavior extends } private ConnectingClientConnection createConnection(final Long shard) { - final ConnectingClientConnection conn = new ConnectingClientConnection<>(context(), shard); + final ConnectingClientConnection conn = new ConnectingClientConnection<>(context(), shard, + resolver().resolveCookieName(shard)); resolveConnection(shard, conn); return conn; } diff --git a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ConnectingClientConnection.java b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ConnectingClientConnection.java index cae6981ee3..1015990106 100644 --- a/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ConnectingClientConnection.java +++ b/opendaylight/md-sal/cds-access-client/src/main/java/org/opendaylight/controller/cluster/access/client/ConnectingClientConnection.java @@ -21,8 +21,8 @@ public final class ConnectingClientConnection extends Abs private static final int TARGET_QUEUE_DEPTH = 4000; // Initial state, never instantiated externally - ConnectingClientConnection(final ClientActorContext context, final Long cookie) { - super(context, cookie, TARGET_QUEUE_DEPTH); + ConnectingClientConnection(final ClientActorContext context, final Long cookie, final String backendName) { + super(context, cookie, backendName, TARGET_QUEUE_DEPTH); } @Override diff --git a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/AccessClientUtil.java b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/AccessClientUtil.java index 92d310dddc..7521ed639e 100644 --- a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/AccessClientUtil.java +++ b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/AccessClientUtil.java @@ -47,7 +47,8 @@ public final class AccessClientUtil { public static ConnectedClientConnection createConnectedConnection( final ClientActorContext context, final Long cookie, final T backend) { - return new ConnectedClientConnection<>(new ConnectingClientConnection<>(context, cookie), backend); + return new ConnectedClientConnection<>(new ConnectingClientConnection<>(context, cookie, backend.getName()), + backend); } public static void completeRequest(final AbstractClientConnection connection, diff --git a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectedClientConnectionTest.java b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectedClientConnectionTest.java index 226c173e8d..530ac5aaa9 100644 --- a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectedClientConnectionTest.java +++ b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectedClientConnectionTest.java @@ -7,8 +7,8 @@ */ package org.opendaylight.controller.cluster.access.client; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.same; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.same; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -44,8 +44,9 @@ public class ConnectedClientConnectionTest @Override protected ConnectedClientConnection createConnection() { - final BackendInfo backend = new BackendInfo(backendProbe.ref(), 0L, ABIVersion.BORON, 10); - final ConnectingClientConnection connectingConn = new ConnectingClientConnection<>(context, 0L); + final BackendInfo backend = new BackendInfo(backendProbe.ref(), "test", 0L, ABIVersion.BORON, 10); + final ConnectingClientConnection connectingConn = new ConnectingClientConnection<>(context, 0L, + backend.getName()); return new ConnectedClientConnection<>(connectingConn, backend); } diff --git a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectingClientConnectionTest.java b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectingClientConnectionTest.java index 911f349963..a3c4b5c4e2 100644 --- a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectingClientConnectionTest.java +++ b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ConnectingClientConnectionTest.java @@ -13,7 +13,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; @@ -150,14 +150,14 @@ public class ConnectingClientConnectionTest { doReturn(mock(MessageSlicer.class)).when(mockContext).messageSlicer(); mockActor = TestProbe.apply(actorSystem); - mockBackendInfo = new BackendInfo(mockActor.ref(), 0, ABIVersion.current(), 5); + mockBackendInfo = new BackendInfo(mockActor.ref(), "test", 0, ABIVersion.current(), 5); mockRequest = new MockRequest(mockIdentifier, mockReplyTo); mockRequest2 = new MockRequest(mockIdentifier, mockReplyTo); mockResponse = mockRequest.toRequestFailure(mockCause); mockResponseEnvelope = new FailureEnvelope(mockResponse, 0, 0, 0); mockCookie = ThreadLocalRandom.current().nextLong(); - queue = new ConnectingClientConnection<>(mockContext, mockCookie); + queue = new ConnectingClientConnection<>(mockContext, mockCookie, mockBackendInfo.getName()); } @After @@ -361,7 +361,7 @@ public class ConnectingClientConnectionTest { private void setupBackend() { final ConnectingClientConnection connectingConn = - new ConnectingClientConnection<>(mockContext, mockCookie); + new ConnectingClientConnection<>(mockContext, mockCookie, "test"); final ConnectedClientConnection connectedConn = new ConnectedClientConnection<>(connectingConn, mockBackendInfo); queue.setForwarder(new SimpleReconnectForwarder(connectedConn)); diff --git a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ReconnectingClientConnectionTest.java b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ReconnectingClientConnectionTest.java index 564de902bf..0b7d0c2655 100644 --- a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ReconnectingClientConnectionTest.java +++ b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/ReconnectingClientConnectionTest.java @@ -7,7 +7,7 @@ */ package org.opendaylight.controller.cluster.access.client; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.after; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -42,8 +42,9 @@ public class ReconnectingClientConnectionTest @Override protected ReconnectingClientConnection createConnection() { - final BackendInfo backend = new BackendInfo(backendProbe.ref(), 0L, ABIVersion.BORON, 10); - final ConnectingClientConnection connectingConn = new ConnectingClientConnection<>(context, 0L); + final BackendInfo backend = new BackendInfo(backendProbe.ref(), "test", 0L, ABIVersion.BORON, 10); + final ConnectingClientConnection connectingConn = new ConnectingClientConnection<>(context, 0L, + backend.getName()); final ConnectedClientConnection connectedConn = new ConnectedClientConnection<>(connectingConn, backend); return new ReconnectingClientConnection<>(connectedConn, mock(RequestException.class)); @@ -69,4 +70,4 @@ public class ReconnectingClientConnectionTest connection.receiveResponse(envelope); verify(callback, after(1000).never()).accept(any()); } -} \ No newline at end of file +} diff --git a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/TransmittingTransmitQueueTest.java b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/TransmittingTransmitQueueTest.java index ea39e4216b..d6e9f5cec5 100644 --- a/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/TransmittingTransmitQueueTest.java +++ b/opendaylight/md-sal/cds-access-client/src/test/java/org/opendaylight/controller/cluster/access/client/TransmittingTransmitQueueTest.java @@ -64,7 +64,7 @@ public class TransmittingTransmitQueueTest extends AbstractTransmitQueueTest NOOP_EXCEPTION_MAPPER = ex -> ex; - // FIXME: make this tuneable private static final int REQUEST_MAX_MODIFICATIONS = 1000; @@ -131,14 +131,14 @@ final class RemoteProxyTransaction extends AbstractProxyTransaction { FluentFuture doExists(final YangInstanceIdentifier path) { final SettableFuture future = SettableFuture.create(); return sendReadRequest(new ExistsTransactionRequest(getIdentifier(), nextSequence(), localActor(), path, - isSnapshotOnly()), t -> completeExists(future, t), future); + isSnapshotOnly()), t -> completeExists(path, future, t), future); } @Override FluentFuture>> doRead(final YangInstanceIdentifier path) { final SettableFuture>> future = SettableFuture.create(); return sendReadRequest(new ReadTransactionRequest(getIdentifier(), nextSequence(), localActor(), path, - isSnapshotOnly()), t -> completeRead(future, t), future); + isSnapshotOnly()), t -> completeRead(path, future, t), future); } private void ensureInitializedBuilder() { @@ -197,15 +197,16 @@ final class RemoteProxyTransaction extends AbstractProxyTransaction { // Happy path recordSuccessfulRequest(request); } else { - recordFailedResponse(response, NOOP_EXCEPTION_MAPPER); + recordFailedResponse(response); } } - private X recordFailedResponse(final Response response, - final Function exMapper) { + private Exception recordFailedResponse(final Response response) { final Exception failure; if (response instanceof RequestFailure) { - failure = ((RequestFailure) response).getCause(); + final RequestException cause = ((RequestFailure) response).getCause(); + failure = cause instanceof RequestTimeoutException + ? new DataStoreUnavailableException(cause.getMessage(), cause) : cause; } else { LOG.warn("Unhandled response {}", response); failure = new IllegalArgumentException("Unhandled response " + response.getClass()); @@ -215,33 +216,35 @@ final class RemoteProxyTransaction extends AbstractProxyTransaction { LOG.debug("Transaction {} failed", getIdentifier(), failure); operationFailure = failure; } - return exMapper.apply(failure); + return failure; } - private void failReadFuture(final SettableFuture future, final Response response) { - future.setException(recordFailedResponse(response, ReadFailedException.MAPPER)); + private void failReadFuture(final SettableFuture future, final String message, + final Response response) { + future.setException(new ReadFailedException(message, recordFailedResponse(response))); } - private void completeExists(final SettableFuture future, final Response response) { - LOG.debug("Exists request completed with {}", response); + private void completeExists(final YangInstanceIdentifier path, final SettableFuture future, + final Response response) { + LOG.debug("Exists request for {} completed with {}", path, response); if (response instanceof ExistsTransactionSuccess) { future.set(((ExistsTransactionSuccess) response).getExists()); } else { - failReadFuture(future, response); + failReadFuture(future, "Error executing exists request for path " + path, response); } recordFinishedRequest(response); } - private void completeRead(final SettableFuture>> future, - final Response response) { - LOG.debug("Read request completed with {}", response); + private void completeRead(final YangInstanceIdentifier path, + final SettableFuture>> future, final Response response) { + LOG.debug("Read request for {} completed with {}", path, response); if (response instanceof ReadTransactionSuccess) { future.set(((ReadTransactionSuccess) response).getData()); } else { - failReadFuture(future, response); + failReadFuture(future, "Error reading data for path " + path, response); } recordFinishedRequest(response); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ShardBackendInfo.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ShardBackendInfo.java index d13099c990..fda7fc6122 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ShardBackendInfo.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ShardBackendInfo.java @@ -28,12 +28,10 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; final class ShardBackendInfo extends BackendInfo { private final Optional dataTree; private final UnsignedLong cookie; - private final String shardName; ShardBackendInfo(final ActorRef actor, final long sessionId, final ABIVersion version, final String shardName, final UnsignedLong cookie, final Optional dataTree, final int maxMessages) { - super(actor, sessionId, version, maxMessages); - this.shardName = Preconditions.checkNotNull(shardName); + super(actor, shardName, sessionId, version, maxMessages); this.cookie = Preconditions.checkNotNull(cookie); this.dataTree = Preconditions.checkNotNull(dataTree); } @@ -46,10 +44,6 @@ final class ShardBackendInfo extends BackendInfo { return dataTree; } - String getShardName() { - return shardName; - } - LocalHistoryIdentifier brandHistory(final LocalHistoryIdentifier id) { Preconditions.checkArgument(id.getCookie() == 0, "History %s is already branded", id); return new LocalHistoryIdentifier(id.getClientId(), id.getHistoryId(), cookie.longValue()); @@ -57,7 +51,7 @@ final class ShardBackendInfo extends BackendInfo { @Override protected ToStringHelper addToStringAttributes(final ToStringHelper toStringHelper) { - return super.addToStringAttributes(toStringHelper).add("cookie", cookie).add("shard", shardName) + return super.addToStringAttributes(toStringHelper).add("cookie", cookie).add("shard", getName()) .add("dataTree", getDataTree().isPresent() ? "present" : "absent"); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/SimpleShardBackendResolver.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/SimpleShardBackendResolver.java index 9741a6bda4..7c301e77a0 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/SimpleShardBackendResolver.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/SimpleShardBackendResolver.java @@ -95,4 +95,9 @@ final class SimpleShardBackendResolver extends AbstractShardBackendResolver { return getBackendInfo(cookie); } + + @Override + public String resolveCookieName(Long cookie) { + return shardName; + } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ModuleShardBackendResolverTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ModuleShardBackendResolverTest.java index 8c0db7e392..5576ba7518 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ModuleShardBackendResolverTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ModuleShardBackendResolverTest.java @@ -120,7 +120,7 @@ public class ModuleShardBackendResolverTest { final ShardBackendInfo shardBackendInfo = TestUtils.getWithTimeout(stage.toCompletableFuture()); Assert.assertEquals(0L, shardBackendInfo.getCookie().longValue()); Assert.assertEquals(dataTree, shardBackendInfo.getDataTree().get()); - Assert.assertEquals(DefaultShardStrategy.DEFAULT_SHARD, shardBackendInfo.getShardName()); + Assert.assertEquals(DefaultShardStrategy.DEFAULT_SHARD, shardBackendInfo.getName()); } @Test -- 2.36.6