On 01/12/17 15:02, Sunil Kumar G wrote:
> Hi,

Hello Sunil,

+openflowplugin-dev, as this relates to OFP.

> I am OFP project dev and was debugging an issue where we were hitting
> ModifiedNodeDoesNotExistException in
> AbstractNodeContainerModificationStrategy.java method
> checkTouchApplicable() throws this exception.

Full exception trace (including chained exceptions) is required to show
proper context.

> Scenario is application is writing group to device directly using OFP
> RPC’s by passing config datastore. During statistic collection, this
> exception occurs.

You do not mention software version, is this reproducible in Oxygen?
Which branches/configurations are affected?

> 
> My guess is in  method checkTouchApplicable() checks for
> modification.getOrginal().isPresent() and cureent.isPresent(), which is
> an AND check failure of which exception is thrown
> 
>  
> 
> Can you please enlighten me on what exactly happens in this AND check.
> 
> What if the group/flow that is being referred at this moment is not
> present in config datastore?
> 
> Why is the operation being set to TOUCH, in which situation will this
> happen ?

TOUCH indicates tree traversal with the intent to modify a subtree. A
parent node of that subtree was observed to be present in the
transaction, but was found to be missing in current tree when the
transaction was being committed.

InMemoryDataTree is an MVCC data structure and you are facing a
version/liveness mismatch, hence the changes in the transaction cannot
be safely merged with modifications that occurred concurrently with the
current transaction.

This is not a fault in yangtools, InMemoryDataTree is just doing its
job, AFAICT.

Regards,
Robert

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
openflowplugin-dev mailing list
[email protected]
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev

Reply via email to