[CONTROLLER-1287] Clustering: Merge stopped working Created: 03/May/15  Updated: 19/Oct/17  Resolved: 06/May/15

Status: Resolved
Project: controller
Component/s: mdsal
Affects Version/s: Post-Helium
Fix Version/s: None

Type: Bug
Reporter: Keith Burns Assignee: Unassigned
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 3100
Priority: High

 Description   

We've used merge since Helium.

Magically in the last day or so, merge is completely borked:

2015-05-02 19:58:23,803 | ERROR | CommitFutures-0 | GroupTable | 274 - org.opendaylight.groupbasedpolicy.ofoverlay-renderer - 0.2.0.SNAPSHOT | Could not merge L281
TransactionCommitFailedException

{message=canCommit encountered an unexpected failure, errorList=[RpcError [message=canCommit encountered an unexpected failure, severity=ERROR, errorType=APPLICATION, tag=operation-failed, applicationTag=null, info=null, cause=java.lang.IllegalStateException: Optional.get() cannot be called on an absent value]]}

at org.opendaylight.controller.md.sal.dom.broker.impl.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:37)[154:org.opendaylight.controller.sal-broker-impl:1.2.0.SNAPSHOT]
at org.opendaylight.controller.md.sal.dom.broker.impl.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:18)[154:org.opendaylight.controller.sal-broker-impl:1.2.0.SNAPSHOT]
at org.opendaylight.yangtools.util.concurrent.ExceptionMapper.apply(ExceptionMapper.java:96)[64:org.opendaylight.yangtools.util:0.7.0.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.ConcurrentDOMDataBroker.handleException(ConcurrentDOMDataBroker.java:212)[179:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.ConcurrentDOMDataBroker.access$100(ConcurrentDOMDataBroker.java:43)[179:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.ConcurrentDOMDataBroker$1.onFailure(ConcurrentDOMDataBroker.java:122)[179:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT]
at com.google.common.util.concurrent.Futures$6.run(Futures.java:1310)[61:com.google.guava:18.0.0]
at org.opendaylight.controller.cluster.datastore.ConcurrentDOMDataBroker$SimpleSameThreadExecutor.execute(ConcurrentDOMDataBroker.java:334)[179:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT]
at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)[61:com.google.guava:18.0.0]
at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)[61:com.google.guava:18.0.0]
at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:202)[61:com.google.guava:18.0.0]
at com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:68)[61:com.google.guava:18.0.0]
at org.opendaylight.controller.cluster.datastore.SingleCommitCohortProxy$1.onComplete(SingleCommitCohortProxy.java:60)[179:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT]
at akka.dispatch.OnComplete.internal(Future.scala:247)[164:com.typesafe.akka.actor:2.3.10]
at akka.dispatch.OnComplete.internal(Future.scala:245)[164:com.typesafe.akka.actor:2.3.10]
at akka.dispatch.japi$CallbackBridge.apply(Future.scala:175)[164:com.typesafe.akka.actor:2.3.10]
at akka.dispatch.japi$CallbackBridge.apply(Future.scala:172)[164:com.typesafe.akka.actor:2.3.10]
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)[161:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55)[164:com.typesafe.akka.actor:2.3.10]
at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:90)[164:com.typesafe.akka.actor:2.3.10]
at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:88)[164:com.typesafe.akka.actor:2.3.10]
at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:88)[164:com.typesafe.akka.actor:2.3.10]
at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72)[161:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:88)[164:com.typesafe.akka.actor:2.3.10]
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:41)[164:com.typesafe.akka.actor:2.3.10]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:401)[164:com.typesafe.akka.actor:2.3.10]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[161:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.pollAndExecAll(ForkJoinPool.java:1253)[161:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1346)[161:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[161:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[161:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
Caused by: java.lang.IllegalStateException: Optional.get() cannot be called on an absent value
at com.google.common.base.Absent.get(Absent.java:47)[61:com.google.guava:18.0.0]

The Group exists, I write it earlier.

I've been banging on this all day. How else is merge supposed to work if the get "behind the curtains" is going to bork on Absent?



 Comments   
Comment by Moiz Raja [ 05/May/15 ]

Could you please attach the log when this happens, so that we can see what exactly is happening.

Comment by Moiz Raja [ 05/May/15 ]

Will wait for Keith Burns to reproduce this problem and post the full stack trace. Till then reducing the priority on this defect.

Comment by Keith Burns [ 06/May/15 ]

The issue was with artifacts hanging around in M2 even after building with -U after testing an experimental patch.

Generated at Wed Feb 07 19:55:09 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.