[MDSAL-379] Attempt to recover bindings when TCCL is incorrect Created: 15/Oct/18  Updated: 02/Nov/18  Resolved: 27/Oct/18

Status: Resolved
Project: mdsal
Component/s: Binding runtime
Affects Version/s: None
Fix Version/s: Fluorine SR1, 3.0.2

Type: Improvement Priority: Medium
Reporter: Robert Varga Assignee: Robert Varga
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Blocks
blocks GENIUS-223 GENIUS Version Bump Patches Ready Resolved
Relates
relates to TSC-179 Genius CSI broken by ietf-interface r... Resolved

 Description   

As noted in INFRAUTILS-58, JobCoordinator shifts binding codec access to a place where the TCCL does not reflect available classes, leading to a failure to reload augmentations:

org.opendaylight.mdsal.binding.dom.codec.impl.IncorrectNestingException: Class interface org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfTunnel is not valid child of interface org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface
	at org.opendaylight.mdsal.binding.dom.codec.impl.IncorrectNestingException.create(IncorrectNestingException.java:25) ~[?:?]
	at org.opendaylight.mdsal.binding.dom.codec.impl.DataContainerCodecContext.childNonNull(DataContainerCodecContext.java:165) ~[?:?]
	at org.opendaylight.mdsal.binding.dom.codec.impl.DataObjectCodecContext.bindingPathArgumentChild(DataObjectCodecContext.java:185) ~[?:?]
	at org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext.getCodecContextNode(BindingCodecContext.java:133) ~[?:?]
	at org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext.newWriter(BindingCodecContext.java:110) ~[?:?]
	at org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry.toNormalizedNode(BindingNormalizedNodeCodecRegistry.java:112) ~[?:?]
	at org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec.toNormalizedNode(BindingToNormalizedNodeCodec.java:162) ~[?:?]
	at org.opendaylight.controller.md.sal.binding.impl.AbstractWriteTransaction.merge(AbstractWriteTransaction.java:51) ~[?:?]

While this needs to be fixed in JobCoordinator, we have the class we're logging for available in this case, hence we can improve the situation by using the class's class loader as an alternative.

 



 Comments   
Comment by Faseela K [ 31/Oct/18 ]

rovarga : Will this solve the problem whatever we are seeing in genius CSIT with this patch?

If so, could you please let us know the corresponding patch which has gone in for this. Would like to know whether the artifacts are published after the fix, so that we can re-run the CSIT

Comment by Robert Varga [ 31/Oct/18 ]

Neon patch is https://git.opendaylight.org/gerrit/76991 , I don't know why it's now showing in gerrit reviews. As noted in "Fix versions", the fix will be part of 3.0.2.

Comment by Michael Vorburger [ 02/Nov/18 ]

As per TSC-179 , this change (76991) did not actually fix the IncorrectNestingException.

Comment by Robert Varga [ 02/Nov/18 ]

Yup, because the root cause for that failure is somewhere else.

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