[OPNFLWPLUG-5] Exception during handshake Created: 17/Dec/13  Updated: 27/Sep/21  Due: 17/Jan/14  Resolved: 20/Jan/14

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

Type: Improvement
Reporter: Ed Warnicke Assignee: Michal Rehak
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Mac OS
Platform: PC



 Description   

I am seeing the following exception during handshake at the OSGI console:

2013-12-17 17:43:24.787 UTC [nioEventLoopGroup-7-1] INFO o.o.o.p.i.c.DelegatingInboundHandler - Channel inactive
2013-12-17 17:43:24.791 UTC [nioEventLoopGroup-7-1] WARN o.o.o.o.m.c.s.SessionManagerOFImpl - context for invalidation not found
2013-12-17 17:43:24.792 UTC [nioEventLoopGroup-7-1] WARN o.o.o.p.i.c.ConnectionAdapterImpl - rpc response discarded: RpcResultKey [xid=98, outputClazz=org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutput]
2013-12-17 17:43:24.792 UTC [nioEventLoopGroup-7-1] INFO o.o.o.p.i.c.DelegatingInboundHandler - Channel unregistered
2013-12-17 17:43:24.793 UTC [pool-102-thread-1] ERROR o.o.o.o.md.core.HandshakeManagerImpl - issuing disconnect during handshake, reason: Task was cancelled.
2013-12-17 17:43:24.801 UTC [Thread-14] ERROR o.o.o.o.m.core.ErrorHandlerQueueImpl - IN THREAD: pool-102-thread-1; session:null -> Task was cancelled.
java.util.concurrent.CancellationException: Task was cancelled.
at com.google.common.util.concurrent.AbstractFuture.cancellationExceptionWithCause(AbstractFuture.java:399) ~[na:na]
at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:313) ~[na:na]
at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:279) ~[na:na]
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:96) ~[na:na]
at org.opendaylight.openflowplugin.openflow.md.core.HandshakeManagerImpl.postHandshake(HandshakeManagerImpl.java:290) ~[na:na]
at org.opendaylight.openflowplugin.openflow.md.core.HandshakeManagerImpl.handleVersionBitmapNegotiation(HandshakeManagerImpl.java:161) ~[na:na]
at org.opendaylight.openflowplugin.openflow.md.core.HandshakeManagerImpl.shake(HandshakeManagerImpl.java:100) ~[na:na]
at org.opendaylight.openflowplugin.openflow.md.core.HandshakeStepWrapper.run(HandshakeStepWrapper.java:47) ~[na:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_25]
at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
Caused by: java.util.concurrent.CancellationException: Future.cancel() was called.
at com.google.common.util.concurrent.AbstractFuture$Sync.complete(AbstractFuture.java:385) ~[na:na]
at com.google.common.util.concurrent.AbstractFuture$Sync.cancel(AbstractFuture.java:362) ~[na:na]
at com.google.common.util.concurrent.AbstractFuture.cancel(AbstractFuture.java:131) ~[na:na]
at org.opendaylight.openflowjava.protocol.impl.connection.ConnectionAdapterImpl$ResponseRemovalListener.onRemoval(ConnectionAdapterImpl.java:539) ~[na:na]
at com.google.common.cache.LocalCache.processPendingNotifications(LocalCache.java:2016) ~[na:na]
at com.google.common.cache.LocalCache$Segment.runUnlockedCleanup(LocalCache.java:3521) ~[na:na]
at com.google.common.cache.LocalCache$Segment.postWriteCleanup(LocalCache.java:3497) ~[na:na]
at com.google.common.cache.LocalCache$Segment.clear(LocalCache.java:3302) ~[na:na]
at com.google.common.cache.LocalCache.clear(LocalCache.java:4270) ~[na:na]
at com.google.common.cache.LocalCache$LocalManualCache.invalidateAll(LocalCache.java:4825) ~[na:na]
at org.opendaylight.openflowjava.protocol.impl.connection.ConnectionAdapterImpl.consume(ConnectionAdapterImpl.java:260) ~[na:na]
at org.opendaylight.openflowjava.protocol.impl.core.DelegatingInboundHandler.channelInactive(DelegatingInboundHandler.java:55) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelInactive(DefaultChannelHandlerContext.java:237) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelInactive(DefaultChannelHandlerContext.java:223) ~[na:na]
at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:75) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelInactive(DefaultChannelHandlerContext.java:237) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelInactive(DefaultChannelHandlerContext.java:223) ~[na:na]
at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:214) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelInactive(DefaultChannelHandlerContext.java:237) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelInactive(DefaultChannelHandlerContext.java:223) ~[na:na]
at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:214) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelInactive(DefaultChannelHandlerContext.java:237) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelInactive(DefaultChannelHandlerContext.java:223) ~[na:na]
at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:75) ~[na:na]
at io.netty.handler.timeout.IdleStateHandler.channelInactive(IdleStateHandler.java:246) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelInactive(DefaultChannelHandlerContext.java:237) ~[na:na]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelInactive(DefaultChannelHandlerContext.java:223) ~[na:na]
at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:767) ~[na:na]
at io.netty.channel.AbstractChannel$AbstractUnsafe$5.run(AbstractChannel.java:558) ~[na:na]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:354) ~[na:na]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:348) ~[na:na]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) ~[na:na]



 Comments   
Comment by Michal Rehak [ 20/Jan/14 ]

This exception has been thrown when virtual switch responded on symetric message using arbitrary XID (session id) whereas controller expected the same XID as used in request.

This behavior of virtual switch can't be changed so far and this exception has been fixed by ignoring XID of response (response is identified by message type only).

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