[NETVIRT-571] IllegalArgumentException: Cannot create IpAddress from 134235392 Created: 30/Mar/17  Updated: 30/Oct/17  Resolved: 17/Apr/17

Status: Resolved
Project: netvirt
Component/s: General
Affects Version/s: Carbon
Fix Version/s: None

Type: Bug
Reporter: Janki Chhatbar Assignee: Riyazahmed Talikoti
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 8105

 Description   

Found at https://logs.opendaylight.org/releng/jenkins092/netvirt-csit-1node-openstack-newton-nodl-v2-upstream-stateful-carbon/274/archives/odl1_karaf.log.gz

2017-03-30 01:32:53,410 | ERROR | pool-16-thread-1 | DOMNotificationRouterEvent | 144 - org.opendaylight.controller.sal-broker-impl - 1.5.0.SNAPSHOT | Delivery of notification org.opendaylight.controller.md.sal.binding.impl.LazySerializedDOMNotification@45aff39a caused an error in listener org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationListenerAdapter@72f56fda
java.lang.IllegalArgumentException: Cannot create IpAddress from 134235392
at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder.getDefaultInstance(IpAddressBuilder.java:43)[63:org.opendaylight.mdsal.model.ietf-inet-types-2013-07-15:1.2.0.SNAPSHOT]
at org.opendaylight.netvirt.elan.utils.ElanUtils.getSourceIpV4Address(ElanUtils.java:2212)[348:org.opendaylight.netvirt.elanmanager-impl:0.4.0.SNAPSHOT]
at org.opendaylight.netvirt.elan.utils.ElanUtils.getSourceIpAddress(ElanUtils.java:2231)[348:org.opendaylight.netvirt.elanmanager-impl:0.4.0.SNAPSHOT]
at org.opendaylight.netvirt.elan.internal.ElanPacketInHandler.onPacketReceived(ElanPacketInHandler.java:101)[348:org.opendaylight.netvirt.elanmanager-impl:0.4.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.binding.util.NotificationListenerInvoker.invokeNotification(NotificationListenerInvoker.java:117)[47:org.opendaylight.mdsal.yang-binding:0.10.0.SNAPSHOT]
at org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationListenerAdapter.onNotification(BindingDOMNotificationListenerAdapter.java:44)[146:org.opendaylight.controller.sal-binding-broker-impl:1.5.0.SNAPSHOT]
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouterEvent.deliverNotification(DOMNotificationRouterEvent.java:56)[144:org.opendaylight.controller.sal-broker-impl:1.5.0.SNAPSHOT]
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter$1.onEvent(DOMNotificationRouter.java:68)[144:org.opendaylight.controller.sal-broker-impl:1.5.0.SNAPSHOT]
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter$1.onEvent(DOMNotificationRouter.java:65)[144:org.opendaylight.controller.sal-broker-impl:1.5.0.SNAPSHOT]
at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:129)[131:com.lmax.disruptor:3.3.6]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_121]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]
2017-03-30 01:32:53,412 | ERROR | pool-16-thread-1 | DOMNotificationRouterEvent | 144 - org.opendaylight.controller.sal-broker-impl - 1.5.0.SNAPSHOT | Delivery of notification org.opendaylight.controller.md.sal.binding.impl.LazySerializedDOMNotification@75722179 caused an error in listener org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationListenerAdapter@72f56fda
java.lang.IllegalArgumentException: Cannot create IpAddress from 134235392
at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder.getDefaultInstance(IpAddressBuilder.java:43)[63:org.opendaylight.mdsal.model.ietf-inet-types-2013-07-15:1.2.0.SNAPSHOT]
at org.opendaylight.netvirt.elan.utils.ElanUtils.getSourceIpV4Address(ElanUtils.java:2212)[348:org.opendaylight.netvirt.elanmanager-impl:0.4.0.SNAPSHOT]
at org.opendaylight.netvirt.elan.utils.ElanUtils.getSourceIpAddress(ElanUtils.java:2231)[348:org.opendaylight.netvirt.elanmanager-impl:0.4.0.SNAPSHOT]
at org.opendaylight.netvirt.elan.internal.ElanPacketInHandler.onPacketReceived(ElanPacketInHandler.java:101)[348:org.opendaylight.netvirt.elanmanager-impl:0.4.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.binding.util.NotificationListenerInvoker.invokeNotification(NotificationListenerInvoker.java:117)[47:org.opendaylight.mdsal.yang-binding:0.10.0.SNAPSHOT]
at org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationListenerAdapter.onNotification(BindingDOMNotificationListenerAdapter.java:44)[146:org.opendaylight.controller.sal-binding-broker-impl:1.5.0.SNAPSHOT]
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouterEvent.deliverNotification(DOMNotificationRouterEvent.java:56)[144:org.opendaylight.controller.sal-broker-impl:1.5.0.SNAPSHOT]
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter$1.onEvent(DOMNotificationRouter.java:68)[144:org.opendaylight.controller.sal-broker-impl:1.5.0.SNAPSHOT]
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter$1.onEvent(DOMNotificationRouter.java:65)[144:org.opendaylight.controller.sal-broker-impl:1.5.0.SNAPSHOT]
at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:129)[131:com.lmax.disruptor:3.3.6]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_121]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]



 Comments   
Comment by Sam Hague [ 11/Apr/17 ]

https://git.opendaylight.org/gerrit/54805

Comment by Riyazahmed Talikoti [ 12/Apr/17 ]

1. Identified issue
2. Fix is DONE
3. Tested and its working fine (with IPv4 and ARP packets)
4. Raised patch for review. and Review under progress

ISSUE AND FIX details below
1. reading IP and ARP payload was wrong, which is fixed by getting payload from deserialised ethernet data based on IPv4 or ARP, getPayload will return
the right payload as the offsets are maintained in Packet based on
type of payload.

2. IllegalArgumentException was for payload type IPv4 where
getSourceAddress method will return of type int, and
NWUtil.toStringIpAddress will accept input as byte.
The same was working fine with payload type ARP as
getSenderProtocolAddress return byte.

3. Tested these changes by creating 2 ports in neutron network, delete 1
port and send ping packets from deleted port to the other port.
First ARP packet hit and was able to retrieve IP address properly, and
then data traffic hit and was able to retrieve IP address.

Comment by Janki Chhatbar [ 17/Apr/17 ]

Cherry picked to Carbon https://git.opendaylight.org/gerrit/#/c/54857/

Master https://git.opendaylight.org/gerrit/#/c/54844/

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