BUG 8403 Timeout writetransactions on initial ensure 42/57942/1
authorTomas Cere <tcere@cisco.com>
Fri, 19 May 2017 12:29:33 +0000 (14:29 +0200)
committerRobert Varga <nite@hq.sk>
Sun, 28 May 2017 18:12:08 +0000 (18:12 +0000)
This stage can get stuck aswell and if the submit is never timed out
from the backend as a result of a bug it will never complete.

Change-Id: Ia424d009cd201e3f03a13af88c35b1390b40cbee
Signed-off-by: Tomas Cere <tcere@cisco.com>
(cherry picked from commit bf9e4dc047d4899f76cd95a1f1f4106f3c5bb4a3)

opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/WriteTransactionsHandler.java

index c4abb391e64b94e59a5058d018d887af3e55d680..6c8750e6955f5c0592389a3ef5c4f3bc6662cff5 100644 (file)
@@ -143,12 +143,12 @@ public class WriteTransactionsHandler implements Runnable {
         // write only the top list
         tx.merge(LogicalDatastoreType.CONFIGURATION, ID_INTS_YID, containerNode);
         try {
-            tx.submit().checkedGet();
+            tx.submit().checkedGet(125, TimeUnit.SECONDS);
         } catch (final OptimisticLockFailedException e) {
             // when multiple write-transactions are executed concurrently we need to ignore this.
             // If we get optimistic lock here it means id-ints already exists and we can continue.
             LOG.debug("Got an optimistic lock when writing initial top level list element.", e);
-        } catch (final TransactionCommitFailedException e) {
+        } catch (final TransactionCommitFailedException | TimeoutException e) {
             LOG.warn("Unable to ensure IdInts list for id: {} exists.", id, e);
             settableFuture.set(RpcResultBuilder.<WriteTransactionsOutput>failed()
                     .withError(RpcError.ErrorType.APPLICATION, "Unexpected-exception", e).build());
@@ -164,8 +164,8 @@ public class WriteTransactionsHandler implements Runnable {
         tx.merge(LogicalDatastoreType.CONFIGURATION, idListWithKey, entry);
 
         try {
-            tx.submit().checkedGet();
-        } catch (final TransactionCommitFailedException e) {
+            tx.submit().checkedGet(125, TimeUnit.SECONDS);
+        } catch (final TransactionCommitFailedException | TimeoutException e) {
             LOG.warn("Unable to ensure IdInts list for id: {} exists.", id, e);
             settableFuture.set(RpcResultBuilder.<WriteTransactionsOutput>failed()
                     .withError(RpcError.ErrorType.APPLICATION, "Unexpected-exception", e).build());