From: Tomas Cere Date: Tue, 16 May 2017 10:40:35 +0000 (+0200) Subject: BUG 8422: Change tx handlers hard timeout X-Git-Tag: release/nitrogen~238 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=c078e3e33bb956b1b2d59b2410f90df5d03f0a64 BUG 8422: Change tx handlers hard timeout This makes write-transactions/produce-transactions return an RpcError upon reaching 2 minutes of waiting after the last transaction is submitted in case the transactions arent timed out from the frontend. Change-Id: I20abbd02ed14e16d9e9a49f935113c0044e7c6d8 Signed-off-by: Tomas Cere --- diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/ProduceTransactionsHandler.java b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/ProduceTransactionsHandler.java index 0d49a697d6..7ce2b8ded6 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/ProduceTransactionsHandler.java +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/ProduceTransactionsHandler.java @@ -143,8 +143,8 @@ public class ProduceTransactionsHandler implements Runnable { cursor.close(); try { - tx.submit().checkedGet(); - } catch (final TransactionCommitFailedException e) { + tx.submit().checkedGet(125, TimeUnit.SECONDS); + } catch (final TransactionCommitFailedException | TimeoutException e) { LOG.warn("Unable to fill the initial item list.", e); settableFuture.set(RpcResultBuilder.failed() .withError(RpcError.ErrorType.APPLICATION, "Unexpected-exception", e).build()); @@ -192,7 +192,8 @@ public class ProduceTransactionsHandler implements Runnable { final ListenableFuture> allFutures = Futures.allAsList(futures); try { - allFutures.get(30, TimeUnit.SECONDS); + // Timeout from cds should be 2 minutes so leave some leeway. + allFutures.get(125, TimeUnit.SECONDS); LOG.debug("All futures completed successfully."); diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/WriteTransactionsHandler.java b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/WriteTransactionsHandler.java index e4236abc7b..c4abb391e6 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/WriteTransactionsHandler.java +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/WriteTransactionsHandler.java @@ -189,8 +189,8 @@ public class WriteTransactionsHandler implements Runnable { tx.put(LogicalDatastoreType.CONFIGURATION, itemListId, mapBuilder.build()); try { - tx.submit().checkedGet(); - } catch (final TransactionCommitFailedException e) { + tx.submit().checkedGet(125, TimeUnit.SECONDS); + } catch (final TransactionCommitFailedException | TimeoutException e) { LOG.warn("Unable to fill the initial item list.", e); settableFuture.set(RpcResultBuilder.failed() .withError(RpcError.ErrorType.APPLICATION, "Unexpected-exception", e).build()); @@ -234,7 +234,8 @@ public class WriteTransactionsHandler implements Runnable { final ListenableFuture> allFutures = Futures.allAsList(futures); try { - allFutures.get(30, TimeUnit.SECONDS); + // Timeout from cds should be 2 minutes so leave some leeway. + allFutures.get(125, TimeUnit.SECONDS); LOG.debug("All futures completed successfully.");