[YANGTOOLS-590] java.lang.RuntimeException: RemoteDevice{}: readOperationalData failed Created: 09/Mar/16 Updated: 10/Apr/22 Resolved: 12/May/16 |
|
| Status: | Resolved |
| Project: | yangtools |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Carol Sanders | Assignee: | Peter Kajsa |
| 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: | 5484 | ||||||||||||||||
| Description |
|
The module exists on the netconf node and the yang file for that is successfully parsed and seen as available capabilities in netconf operational tree HTTP ERROR 500 Problem accessing /restconf/config/network-topology:network-topology/topology/topology-netconf/node/vyatta-4.1/yang-ext:mount/vyatta-security-v1:security/. Reason: Server Error Caused by: java.lang.RuntimeException: RemoteDevice {vyatta-4.1}: readOperationalData failed |
| Comments |
| Comment by Carol Sanders [ 09/Mar/16 ] |
|
Additionally, |
| Comment by Jakub Morvay [ 10/Mar/16 ] |
|
Hi Carol, This server response with exception doesn't contain enough information to find the problem causing this error. If it is possible and this stuff isn't confidential, can you also attach karaf log, device configuration and relevant yang schemas? Or at least karaf's ERROR log related to this data read would be helpful. |
| Comment by Carol Sanders [ 10/Mar/16 ] |
|
Attachment karaf.zip has been added with description: karaf.log |
| Comment by Jakub Morvay [ 14/Mar/16 ] |
|
I checked provided log and it seems that this issue is not netconf related. Log: : Unable to build schema context, unsatisfied imports {SourceIdentifier [name=ietf-netconf-monitoring@2010-10-04]=[ModuleImportImpl [name=ietf-inet-types, revision=2010-09-24], ModuleImportImpl [name=ietf-yang-types, revision=2010-09-24]], SourceIdentifier [name=vyatta-interfaces-l2tpeth-v1@2015-08-14]=[ModuleImportImpl [name=vyatta-xconnect-v1, revision=null]]}, will reattempt with resolved only indicates that some modules are missing from device's schema context. Read error states that you want to read unknown nodes data (node firewall in container security). Is this node defined in vyatta-interfaces-l2tpeth-v1 module or its submodules? |
| Comment by Balaji Varadaraju [ 14/Mar/16 ] |
|
Yes this module is defined. In addition we tested the same node on Lithium and it works fine. On Be, yang modules are resolved and shown in available capabilities in the operational store. However when we do a get on that, controller is unable to parse even though it's in resolved state. This looks like a regression from Li to Be. |
| Comment by Balaji Varadaraju [ 15/Mar/16 ] |
|
I think we know the cause. One of the YANG files has pattern restrictions for the value. If you see the pattern values are not enclosed in double quotes. When I enclose them in double quotes, we do not see the problem. But we see the issue when they are not. However on Li this is not an issue. Is this something changed in Be? Is the validation more strict in Be? Also refer to this bug which is also related to patterns. ( Go to the end of comments section) https://bugs.opendaylight.org/show_bug.cgi?id=5396 leaf vhost { type types:interface-ifname { pattern dp[0-9]+vhost[0-9]+\.[1-9][0-9]*; } } |
| Comment by Peter Kajsa [ 15/Mar/16 ] |
|
The new yang statement parser has been introduced in Beryllium release of Yang Tools. Pattern value should be enclosed in double quotes, since it may contains characters like ';',' {','}' etc. |
| Comment by Balaji Varadaraju [ 15/Mar/16 ] |
|
But the quotes are not mandatory if no escaping is required right. By making this mandatory we are artificially making it a requirement and hence are breaking files which may not have it. I don't think YANG specifications require quotes for patterns unless it needs escaping. |
| Comment by Peter Kajsa [ 22/Mar/16 ] |
|
If an expression contains one of the following characters ('\r' | '\n' | '\t' | ' ' | ';' | ' {' | '"' | '\'' | '/' | '=' | '[' | ']' | '+' | '}'), it must be enclosed in "" or ''. |
| Comment by Balaji Varadaraju [ 22/Mar/16 ] |
|
Peter, Can you please take a look at this? Regex processing seems to have broken in Be. |
| Comment by Tony Tkacik [ 22/Mar/16 ] |
|
STRING definition in old parser (used in Lithium): STRING: ((( '\r' | '\n' | '\t' | ' ' | ';' | '{' | '"' | '\'')( '\r' | '\n' | '\t' | ' ' | ';' | '{' )* ) | SUB_STRING ) ->popMode; STRING definition in new parser: STRING : ((~( '\r' | '\n' | '\t' | ' ' | ';' | ' {' | '"' | '\'' | '/' | '=' | '[' | ']' | '+' | '}' )~( '\r' | '\n' | ')* ) | SUB_STRING ); Which adds additional characters such as =[]} to exclusion which does not seems correct. |
| Comment by Peter Kajsa [ 22/Mar/16 ] |
|
Hmmm ok, I will discuss this issue with author of the grammar, maybe he had some reasons for this change (e.g. fix of a bug etc.). |
| Comment by Colin Dixon [ 24/Mar/16 ] |
|
Any progress here? |
| Comment by Peter Kajsa [ 31/Mar/16 ] |
|
We are trying to change current yang statement grammar to support such arguments and retest all yang models. Still in progress. |
| Comment by Peter Kajsa [ 28/Apr/16 ] |
|
Yang lexer fix: https://git.opendaylight.org/gerrit/#/c/38190/ |
| Comment by Robert Varga [ 29/Apr/16 ] |