Uploaded image for project: 'yangtools'
  1. yangtools
  2. YANGTOOLS-909

MinMaxElementsValidation fails with disappearing list

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Highest
    • Resolution: Done
    • 2.1.0, 2.1.1
    • 2.1.2
    • data-impl
    • None

    Description

      Downstreams report the following problem:

      2018-10-11T16:40:34,342 | ERROR | CommitFutures-3  | JobCoordinatorImpl               | 284 - org.opendaylight.infrautils.jobcoordinator-impl - 1.5.0.SNAPSHOT | Job still failed on final retry: JobEntry{key='80b0ade5-e20a-4ddd-9b90-70dfadb80908', mainWorker=org.opendaylight.genius.interfacemanager.servicebindings.flowbased.listeners.FlowBasedServicesInterfaceStateListener$RendererStateInterfaceUnbindWorker$$Lambda$2087/2140116126@14bc2564, rollbackWorker=null, retryCount=3/3, futures=[com.google.common.util.concurrent.AbstractTransformFuture$TransformFuture@1083a32b[status=FAILURE, cause=[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=com.google.common.base.VerifyException]]}]]]}
      org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException: canCommit encountered an unexpected failure
          at org.opendaylight.controller.sal.core.compat.LegacyDOMDataBrokerAdapter$1.newWithCause(LegacyDOMDataBrokerAdapter.java:75) ~[242:org.opendaylight.controller.sal-core-compat:1.9.0.SNAPSHOT]
          at org.opendaylight.controller.sal.core.compat.LegacyDOMDataBrokerAdapter$1.newWithCause(LegacyDOMDataBrokerAdapter.java:64) ~[242:org.opendaylight.controller.sal-core-compat:1.9.0.SNAPSHOT]
          at org.opendaylight.yangtools.util.concurrent.ExceptionMapper.apply(ExceptionMapper.java:106) ~[426:org.opendaylight.yangtools.util:2.1.1]
          at org.opendaylight.controller.sal.core.compat.LegacyDOMDataBrokerAdapter$DOMDataTransactionAdapter$1.onFailure(LegacyDOMDataBrokerAdapter.java:300) [242:org.opendaylight.controller.sal-core-compat:1.9.0.SNAPSHOT]
          at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1349) [33:com.google.guava:25.1.0.jre]
          at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:398) [33:com.google.guava:25.1.0.jre]
          at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1024) [33:com.google.guava:25.1.0.jre]
          at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:866) [33:com.google.guava:25.1.0.jre]
          at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:711) [33:com.google.guava:25.1.0.jre]
          at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:93) [33:com.google.guava:25.1.0.jre]
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
          at java.lang.Thread.run(Thread.java:748) [?:?]
      Caused by: com.google.common.base.VerifyException
          at com.google.common.base.Verify.verify(Verify.java:100) ~[33:com.google.guava:25.1.0.jre]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.MinMaxElementsValidation.checkMinMaxElements(MinMaxElementsValidation.java:80) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.MinMaxElementsValidation.checkTouchApplicable(MinMaxElementsValidation.java:110) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:130) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:304) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:286) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:130) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:304) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:286) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:130) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.UnorderedMapModificationStrategy.lambda$checkApplicable$1(UnorderedMapModificationStrategy.java:45) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.AutomaticLifecycleMixin.checkApplicable(AutomaticLifecycleMixin.java:111) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.UnorderedMapModificationStrategy.checkApplicable(UnorderedMapModificationStrategy.java:45) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:304) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:286) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:130) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.StructuralContainerModificationStrategy.lambda$checkApplicable$1(StructuralContainerModificationStrategy.java:44) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.AutomaticLifecycleMixin.checkApplicable(AutomaticLifecycleMixin.java:111) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.StructuralContainerModificationStrategy.checkApplicable(StructuralContainerModificationStrategy.java:44) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:304) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:286) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:130) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.RootModificationApplyOperation.checkApplicable(RootModificationApplyOperation.java:71) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
          at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractDataTreeTip.validate(AbstractDataTreeTip.java:38) ~[431:org.opendaylight.yangtools.yang-data-impl:2.1.1]
      

      This turns out to be an invalid assumption in MinMaxElementsValidation, which needs to be able to deal with the data disappearing after application

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            rovarga Robert Varga
            rovarga Robert Varga
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: