[MDSAL-194] exception while configuring bgp peer (boron and carbon) Created: 22/Aug/16 Updated: 06/Aug/18 Resolved: 04/Aug/18 |
|
| Status: | Resolved |
| Project: | mdsal |
| Component/s: | Binding codegen, Binding runtime |
| Affects Version/s: | None |
| Fix Version/s: | Fluorine, Oxygen SR3 |
| Type: | Bug | ||
| Reporter: | Peter Gubka | Assignee: | Unassigned |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| Attachments: |
|
||||||||||||||||
| Issue Links: |
|
||||||||||||||||
| External issue ID: | 6497 | ||||||||||||||||
| Description |
|
sandbox replication to have less logs with just 1 suite: exception: 2016-08-22 12:02:56,916 | ERROR | on-dispatcher-63 | DataTreeChangeListenerActor | 172 - org.opendaylight.controller.sal-distributed-datastore - 1.4.0.SNAPSHOT | Error notifying listener org.opendaylight.controller.md.sal.binding.impl.BindingClusteredDOMDataTreeChangeListenerAdapter@154bfb5a |
| Comments |
| Comment by Peter Gubka [ 22/Aug/16 ] |
|
Attachment karaf.log.gz has been added with description: karaf log |
| Comment by Milos Fabian [ 26/Aug/16 ] |
|
Possibly yangtools/mdsal bug - problem addresses via email - https://lists.opendaylight.org/pipermail/yangtools-dev/2016-August/001549.html A temporary workaround should be possible in BGP code. |
| Comment by Robert Varga [ 31/Aug/16 ] |
| Comment by Vratko Polak [ 31/Aug/16 ] |
|
https://git.opendaylight.org/gerrit/#/c/44875/1 2016-08-31 10:08:47,083 | ERROR | on-dispatcher-65 | DataTreeChangeListenerActor | 200 - org.opendaylight.controller.sal-distributed-datastore - 1.5.0.SNAPSHOT | Error notifying listener org.opendaylight.controller.md.sal.binding.impl.BindingClusteredDOMDataTreeChangeListenerAdapter@69f546e2 |
| Comment by Vratko Polak [ 31/Aug/16 ] |
|
> another exception Well, it is basically the same one. |
| Comment by Robert Varga [ 31/Aug/16 ] |
|
There are two augmentations in play here, AfiSafi1 and AfiSafi2, which are really completely equivalent, as they end up targeting instantiations of the same grouping: package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev160614; public interface AfiSafi1 AfiSafi2 looks exactly the same. Note that we are looking for AfiSafi2 here. Based on the model (bgp-openconfig-extensions) and the call trace, we should be looking up AfiSafi1 (as that augments neighbor, AfiSafi2 augments global). This is something yangtools probably confused and should be rectified by the proposed patch. Now when DTCL is being invoked, we go through LazyDataObject and since we have not touched getAugmentations(), but are targeting a single one, we end up calling through DataObjectCodecContext.streamChild() and after some mucking around in augmentationByClassOrEquivalentClass(). We then proceed to scan all real augmentations and check if any of them are equivalent using BindingReflections.isSubstitutionFor() – which returns true, as the classes are really equivalent. Hence we instantiate a proxy for AfiSafi1, thinking it is a valid replacement for AfiSafi2 and return that – leading to ClassCastException. So aside from bgpcep fix, https://git.opendaylight.org/gerrit/44961, which should rectify the lookup and ClassCastException, we need to solve the problem in mdsal. I can think of two avenues:
I think we should implement the second option, as it lowers the number of classes and prevents this sort of confusion. |
| Comment by Robert Varga [ 01/Sep/16 ] |
|
The ClassCastException has disappeared, but the confusion about AfiSafi1/AfiSafi2 needs to be cleaned up in MD-SAL. Reducing severity and dropping target release. |
| Comment by Vratko Polak [ 06/Aug/18 ] |
|
> the confusion about AfiSafi1/AfiSafi2 needs to be cleaned up in MD-SAL Do we have a unit test proving the confusion has been cleaned up indeed (or another Bug tracking it if not)? |
| Comment by Robert Varga [ 06/Aug/18 ] |
|
Of course we do. |
| Comment by Vratko Polak [ 06/Aug/18 ] |
|
Oh, Now I see the fix: https://git.opendaylight.org/gerrit/72961 It seems that in order for Jira to show the link to a related Change, the issue name has to be written in the first line of the commit message. |
| Comment by Vratko Polak [ 06/Aug/18 ] |
|
> in order for Jira to show the link to a related Change And now I see the gerrit links in |