From 073066012e12969cf901accf9b5fbf4999a18934 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 25 Apr 2017 10:39:21 +0200 Subject: [PATCH] Improve logging around transaction lifecycle Testing has shown that we have a gap in request handling and we have a lot of unclosed transactions. Add logging of code paths which trigger unsupported request. Change-Id: I013ba8a141d5a1a9e311a8bca7842ac77064d277 Signed-off-by: Robert Varga (cherry picked from commit 63d615831603b7a0a11b173f9d9316641e880844) --- .../cluster/datastore/FrontendReadOnlyTransaction.java | 5 +++++ .../cluster/datastore/FrontendReadWriteTransaction.java | 2 ++ .../controller/cluster/datastore/LeaderFrontendState.java | 1 + .../org/opendaylight/controller/cluster/datastore/Shard.java | 2 +- 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadOnlyTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadOnlyTransaction.java index a3cffd1d5e..071fded649 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadOnlyTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadOnlyTransaction.java @@ -23,6 +23,8 @@ import org.opendaylight.controller.cluster.access.concepts.RequestEnvelope; import org.opendaylight.controller.cluster.access.concepts.RequestException; import org.opendaylight.controller.cluster.access.concepts.UnsupportedRequestException; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Read-only frontend transaction state as observed by the shard leader. @@ -31,6 +33,8 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; */ @NotThreadSafe final class FrontendReadOnlyTransaction extends FrontendTransaction { + private static final Logger LOG = LoggerFactory.getLogger(FrontendReadOnlyTransaction.class); + private final ReadOnlyShardDataTreeTransaction openTransaction; private FrontendReadOnlyTransaction(final AbstractFrontendHistory history, @@ -56,6 +60,7 @@ final class FrontendReadOnlyTransaction extends FrontendTransaction { handleTransactionAbort((TransactionAbortRequest) request, envelope, now); return null; } else { + LOG.warn("Rejecting unsupported request {}", request); throw new UnsupportedRequestException(request); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java index 099095325c..ced91b5acd 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java @@ -104,6 +104,7 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { handleTransactionAbort((TransactionAbortRequest) request, envelope, now); return null; } else { + LOG.warn("Rejecting unsupported request {}", request); throw new UnsupportedRequestException(request); } } @@ -314,6 +315,7 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { coordinatedCommit(envelope, now); return null; default: + LOG.warn("{}: rejecting unsupported protocol {}", history().persistenceId(), maybeProto.get()); throw new UnsupportedRequestException(request); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LeaderFrontendState.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LeaderFrontendState.java index 2b1812319d..92b696ac4c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LeaderFrontendState.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LeaderFrontendState.java @@ -113,6 +113,7 @@ final class LeaderFrontendState implements Identifiable { } else if (request instanceof PurgeLocalHistoryRequest) { return handlePurgeHistory((PurgeLocalHistoryRequest)request, envelope, now); } else { + LOG.warn("{}: rejecting unsupported request {}", persistenceId, request); throw new UnsupportedRequestException(request); } } finally { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java index aca69c2a5f..2b4ff4845c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java @@ -453,7 +453,7 @@ public class Shard extends RaftActor { final ClientIdentifier clientId = lhReq.getTarget().getClientId(); return getFrontend(clientId).handleLocalHistoryRequest(lhReq, envelope, now); } else { - LOG.debug("{}: rejecting unsupported request {}", persistenceId(), request); + LOG.warn("{}: rejecting unsupported request {}", persistenceId(), request); throw new UnsupportedRequestException(request); } } -- 2.36.6