[GENIUS-95] getDpidFromInterface() failed; input = GetDpidFromInterfaceInput [_intfName=63a27ed5-d1e0-4556-8523-f25af639b43c Created: 01/Nov/17  Updated: 29/Aug/19  Resolved: 29/Aug/19

Status: Verified
Project: genius
Component/s: General
Affects Version/s: Oxygen
Fix Version/s: None

Type: Bug Priority: Highest
Reporter: Sam Hague Assignee: Michael Vorburger
Resolution: Done Votes: 0
Labels: csit:exception
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

https://logs.opendaylight.org/releng/jenkins092/netvirt-csit-1node-openstack-ocata-upstream-stateful-oxygen/290/odl1_karaf.log.gz

2017-11-01 08:50:39,892 | ERROR | nPool-1-worker-1 | InterfaceManagerRpcService | 242 - org.opendaylight.genius.interfacemanager-impl - 0.4.0.SNAPSHOT | RPC getDpidFromInterface() failed; input = GetDpidFromInterfaceInput [_intfName=63a27ed5-d1e0-4556-8523-f25af639b43c, augmentation=[]]
java.lang.IllegalArgumentException: Retrieval of datapath id for the key

{63a27ed5-d1e0-4556-8523-f25af639b43c}

failed due to missing Interface-state
at org.opendaylight.genius.interfacemanager.rpcservice.InterfaceManagerRpcService.lambda$getDpidFromInterface$0(InterfaceManagerRpcService.java:120)[242:org.opendaylight.genius.interfacemanager-impl:0.4.0.SNAPSHOT]
at org.opendaylight.genius.infra.FutureRpcResults$FutureRpcResultBuilder.build(FutureRpcResults.java:161)[248:org.opendaylight.genius.mdsalutil-api:0.4.0.SNAPSHOT]
at org.opendaylight.genius.interfacemanager.rpcservice.InterfaceManagerRpcService.getDpidFromInterface(InterfaceManagerRpcService.java:125)[242:org.opendaylight.genius.interfacemanager-impl:0.4.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.binding.util.RpcMethodInvokerWithInput.invokeOn(RpcMethodInvokerWithInput.java:32)[305:org.opendaylight.mdsal.yang-binding:0.12.0.SNAPSHOT]



 Comments   
Comment by Michael Vorburger [ 01/Nov/17 ]

Was wondering if this could have been caused by one of Tom's changes I recently merged, but he just had a look and clarified his only merged patch so far (there are more pending) is https://git.opendaylight.org/gerrit/#/c/64492/ which didn't change InterfaceManagerRpcService.

Comment by Tom Pantelis [ 01/Nov/17 ]

It calls into InterfaceManagerCommonUtils.getInterfaceState which hasn't changed either. It seems the config DS had the data but whatever writes the data to the oper DS didn't or not in time.

Comment by Michael Vorburger [ 01/Nov/17 ]

k.faseela and shague and I were just discussing this more on private IRC, and now I got what happened here, here's the story:

https://git.opendaylight.org/gerrit/#/c/63413/ first introduced FutureRpcResults, and made sure it didn't change existing interfacemanager behaviour - notably in line 125:

onFailure(e -> { /* do not LOG error here */ }) 

https://git.opendaylight.org/gerrit/#/c/64793/ changed things (improved) a bit, but we forgot to adjust InterfaceManagerRpcService - now the line above does NOT supress the logging, anymore, so it started showing up in log - but it was JUST (a lot of) confusing error log statements, NOT broken functionality

https://git.opendaylight.org/gerrit/#/c/64999/ fixes this; because now with c/64793 it has to be:

onFailureLogLevel(NONE)

https://git.opendaylight.org/gerrit/#/c/64450/ actually already had the fix for this, but let that be reviewed separately

Generated at Wed Feb 07 19:59:54 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.