|
Attachment karaf.log has been added with description: karaf log
|
|
Could you verify that value "dp0s3" is valid for leaf /interfaces/dataplane/tagnode?
{path=[(urn:vyatta.com:mgmt:vyatta-interfaces:1?revision=2015-08-05)interfaces, (urn:vyatta.com:mgmt:vyatta-interfaces-dataplane:1?revision=2015-08-14)dataplane, (urn:vyatta.com:mgmt:vyatta-interfaces-dataplane:1?revision=2015-08-14)tagnode]
The underlaying exception is:
Failed to parse element [tagnode: null] as leaf AbsoluteSchemaPath
{path=[(urn:vyatta.com:mgmt:vyatta-interfaces:1?revision=2015-08-05)interfaces, (urn:vyatta.com:mgmt:vyatta-interfaces-dataplane:1?revision=2015-08-14)dataplane, (urn:vyatta.com:mgmt:vyatta-interfaces-dataplane:1?revision=2015-08-14)tagnode]}
at org.opendaylight.yangtools.yang.data.impl.schema.transform.dom.parser.LeafNodeDomParser.parseLeaf(LeafNodeDomParser.java:44)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.dom.parser.LeafNodeDomParser.parseLeaf(LeafNodeDomParser.java:22)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.LeafNodeBaseParser.parse(LeafNodeBaseParser.java:47)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.LeafNodeBaseParser.parse(LeafNodeBaseParser.java:28)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher$BaseNodeParserDispatcher.dispatchChildElement(NodeParserDispatcher.java:51)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:147)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListEntryNodeBaseParser.parse(ListEntryNodeBaseParser.java:61)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListEntryNodeBaseParser.parse(ListEntryNodeBaseParser.java:28)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListNodeBaseParser.parse(ListNodeBaseParser.java:46)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListNodeBaseParser.parse(ListNodeBaseParser.java:26)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher$BaseNodeParserDispatcher.dispatchChildElement(NodeParserDispatcher.java:61)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:177)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:34)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher$BaseNodeParserDispatcher.dispatchChildElement(NodeParserDispatcher.java:66)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:197)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:47)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:29)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher$BaseNodeParserDispatcher.dispatchChildElement(NodeParserDispatcher.java:49)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:177)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:47)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:29)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
at org.opendaylight.netconf.sal.connect.netconf.schema.mapping.NetconfMessageTransformer.toRpcResult(NetconfMessageTransformer.java:294)[228:org.opendaylight.netconf.sal-netconf-connector:1.3.0.Beryllium-RC2]
... 33 more
Caused by: java.lang.IllegalArgumentException: Invalid value "dp0s3" for union type.
at org.opendaylight.yangtools.yang.data.impl.codec.UnionStringCodec.deserialize(UnionStringCodec.java:61)[82:org.opendaylight.yangtools.yang-data-impl:0.8.0.Beryllium-RC2]
|
|
Could you verify that value "dp0s3" is valid for leaf /interfaces/dataplane/tagnode?
{path=[(urn:vyatta.com:mgmt:vyatta-interfaces:1?revision=2015-08-05)interfaces, (urn:vyatta.com:mgmt:vyatta-interfaces-dataplane:1?revision=2015-08-14)dataplane, (urn:vyatta.com:mgmt:vyatta-interfaces-dataplane:1?revision=2015-08-14)tagnode]
|
|
(In reply to Tony Tkacik from comment #2)
> Could you verify that value "dp0s3" is valid for leaf
> /interfaces/dataplane/tagnode?
>
> {path=[(urn:vyatta.com:mgmt:vyatta-interfaces:1?revision=2015-08-
> 05)interfaces,
> (urn:vyatta.com:mgmt:vyatta-interfaces-dataplane:1?revision=2015-08-
> 14)dataplane,
> (urn:vyatta.com:mgmt:vyatta-interfaces-dataplane:1?revision=2015-08-
> 14)tagnode]
Hi Tony,
What do you mean by "valid" here? I can see the dp0s3 interface working properly on the device. Could you tell me how I can verify this? Thanks
|
|
Hi Tony,
Yes, this is a valid interface on the device. We tested the same device on both Lithium and Be. On Li, it works fine. However on Be we get this error while doing a Get call. We tried get at different levels ( right at the child, its parent and at mount point) . So this looks like a regression. Do you need more information?
Thanks,
bala
|
|
Hi Tony,
The interface name is dp0s3. This name is failing the regex pattern in the YANG file and hence the error. The regex test passes fine in Li.
Here is the regex syntax for this field which looks fine and I think it should match the second one. Once I comment out regex rules in the yang files and relax the validation it works fine. So the issue seems to be in regex validation. Has anything changed in regex validation in Be?
typedef dataplane-ifname {
type union {
// Onboard device
type string
{
pattern "dp[0-9]+o[0-9]+(d[0-9]+)?";
configd:pattern-help "<dpFoN>";
}
// hotplug slot index
type string
{
pattern "dp[0-9]+s[0-9]+(f[0-9]+)?(d[0-9]+)?";
configd:pattern-help "<dpFsN>";
}
// PCI device address
type string {
pattern "dp[0-9](P[0-9])?p[0-9]
{1,3}s[0-9]{1,3}
(f[0-9])?(d[0-9])?";
configd:pattern-help "<dpFpNsS>";
}
// Biosdevname compatiable names. VMware only
type string
{
pattern "dp[0-9]+p[0-9]+p[0-9]+";
configd:pattern-help "<dpFpNpS>";
}
}
}
|
|
Hi Tony,
Any ideas on what changes in yang parser impl from Li->Be may have caused this change in behavior? Any input is appreciated.
Thanks,
Ryan
|
|
It appears if we comment out the patterns, then we are at least able to GET the endpoint. Was there a change the the pattern parsing code? If so, which files should I be looking at w/in the yangtools project?
Thanks,
Ryan
|
|
Seems more like an issue with pattern definitions in yangtools, moving to yangtools.
|
|
Regex expressions in question are listed in my post above. Looks like a regression.
|
|
I am trying to replicate this bug and I am hitting exactly the same exception as it is in the karaf log (i.e. java.lang.IllegalArgumentException: Failed to parse element [...: null] as leaf ...), but only if the input string does not match any of the regex expressions in the union.
If the input string matches one of the regex expressions, everything work fine.
Could you send me please the input xml and yang models which cause the issue ?
|
|
HI Peter,
I'll see if I can gather those details Meanwhile its complaining on "dp0s3". It says this string does not match the regex. Do you think that should be the case? dp0s3 is the name of the data plane interface.
Do you think this information will help you debug further?
Thanks,
Bala
|
|
Yes, thank you. The bug has been replicated with this input string. I am investigating the bug further.
|
|
fix master: https://git.opendaylight.org/gerrit/#/c/36587/
fix stable/beryllium: https://git.opendaylight.org/gerrit/#/c/36589/
|
|
Peter, thanks a lot for the quick turn around on this. We'll test it once merged to Be.
|
Generated at Wed Feb 07 20:53:41 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.