From: Robert Varga Date: Tue, 25 Apr 2017 08:39:21 +0000 (+0200) Subject: Improve logging around transaction lifecycle X-Git-Tag: release/carbon~64 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=63d615831603b7a0a11b173f9d9316641e880844 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 --- 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 d80488ca22..64aef6838b 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); } }