[NETCONF-800] Incorrect parsing of stream name Created: 10/Aug/21 Updated: 11/Aug/21 Resolved: 11/Aug/21 |
|
| Status: | Resolved |
| Project: | netconf |
| Component/s: | restconf-nb |
| Affects Version/s: | 1.13.3 |
| Fix Version/s: | 1.13.4 |
| Type: | Bug | Priority: | Highest |
| Reporter: | Robert Varga | Assignee: | Robert Varga |
| Resolution: | Done | Votes: | 0 |
| Labels: | regression | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Description |
|
We have a regression in CSIT detected here: and reports: 14:03:52.702 INFO GET Response : url=http://10.30.171.179:8181/rests/data/ietf-restconf-monitoring:restconf-state/streams/stream/data-change-event-subscription/opendaylight-inventory:nodes/datastore=CONFIGURATION/scope=BASE
status=400, reason=Bad Request
body=<errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"><error><error-tag>malformed-message</error-tag><error-type>protocol</error-type><error-message>Could not parse Instance Identifier 'ietf-restconf-monitoring:restconf-state/streams/stream=opendaylight-inventory:nodes'. Offset: '77' : Reason: Identifier must start with '/'.</error-message></error></errors>
14:03:52.702 INFO ${resp} = <Response [400]>
This was already fixed in 2.0.0 through https://git.opendaylight.org/gerrit/c/netconf/+/96268 . |
| Comments |
| Comment by Robert Varga [ 10/Aug/21 ] |
|
This might be have been fixed on Al by https://git.opendaylight.org/gerrit/c/netconf/+/96394 which is not present in 1.13.x |
| Comment by Robert Varga [ 11/Aug/21 ] |
|
The call stack of the failure looks like this: Thread [qtp1857409581-349] (Suspended (exception RestconfDocumentedException)) RestconfDocumentedException.throwIf(boolean, RestconfError$ErrorType, RestconfError$ErrorTag, String, Object...) line: 194 YangInstanceIdentifierDeserializer.checkValid(boolean, RestconfError$ErrorTag, String, Object...) line: 286 YangInstanceIdentifierDeserializer.validArg() line: 320 YangInstanceIdentifierDeserializer.parse() line: 94 YangInstanceIdentifierDeserializer.create(EffectiveModelContext, String) line: 87 IdentifierCodec.deserialize(String, EffectiveModelContext) line: 33 SubscribeToStreamUtil.writeDataToDS(EffectiveModelContext, String, DOMDataTreeReadWriteTransaction, MapEntryNode) line: 230 SubscribeToStreamUtil$ServerSentEvents(SubscribeToStreamUtil).subscribeToDataStream(String, UriInfo, RestconfStreamsSubscriptionServiceImpl$NotificationQueryParams, RestconfStreamsSubscriptionServiceImpl$HandlersHolder) line: 220 RestconfStreamsSubscriptionServiceImpl.subscribeToStream(String, UriInfo) line: 104 ServicesWrapper.subscribeToStream(String, UriInfo) line: 164 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] the problem is that the parser does not like the ":nodes" part. |
| Comment by Robert Varga [ 11/Aug/21 ] |
|
This patch was the fix, hence forward-ported it to 1.13.x. |