[CONTROLLER-397] Fix chunk framing on netconf server Created: 25/Apr/14  Updated: 25/Jul/23  Resolved: 29/Apr/14

Status: Resolved
Project: controller
Component/s: netconf
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Maros Marsalek Assignee: Maros Marsalek
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issue Links:
Blocks
blocks CONTROLLER-388 Refactor sal-netconf-connector Resolved
External issue ID: 848

 Description   

Netconf communication fails with concurrent clients using CHUNK framing.

Exception log from ConcurrentClientsTest when using CHUNK:

09:50:06.882 [nioEventLoopGroup-2-2] DEBUG o.o.p.f.AbstractSessionNegotiator - Unexpected error while handling negotiation message org.opendaylight.controller.netconf.api.NetconfMessage@5beaa7b8
java.lang.ClassCastException: org.opendaylight.controller.netconf.api.NetconfMessage cannot be cast to org.opendaylight.controller.netconf.util.messages.NetconfHelloMessage
at org.opendaylight.controller.netconf.util.AbstractNetconfSessionNegotiator.handleMessage(AbstractNetconfSessionNegotiator.java:42) [classes/:na]
at org.opendaylight.protocol.framework.AbstractSessionNegotiator.channelRead(AbstractSessionNegotiator.java:92) [protocol-framework-0.5.0-SNAPSHOT.jar:na]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:340) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:326) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:155) [netty-codec-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:340) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:326) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:155) [netty-codec-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:340) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:326) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.handler.codec.ByteToMessageDecoder.handlerRemoved(ByteToMessageDecoder.java:110) [netty-codec-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelPipeline.callHandlerRemoved0(DefaultChannelPipeline.java:524) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelPipeline.callHandlerRemoved(DefaultChannelPipeline.java:518) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelPipeline.replace0(DefaultChannelPipeline.java:453) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelPipeline.replace(DefaultChannelPipeline.java:402) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelPipeline.replace(DefaultChannelPipeline.java:375) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at org.opendaylight.controller.netconf.util.AbstractNetconfSessionNegotiator.replaceChannelHandler(AbstractNetconfSessionNegotiator.java:180) [classes/:na]
at org.opendaylight.controller.netconf.util.AbstractNetconfSessionNegotiator.insertChunkFramingToPipeline(AbstractNetconfSessionNegotiator.java:162) [classes/:na]
at org.opendaylight.controller.netconf.util.AbstractNetconfSessionNegotiator.getSessionForHelloMessage(AbstractNetconfSessionNegotiator.java:149) [classes/:na]
at org.opendaylight.controller.netconf.util.AbstractNetconfSessionNegotiator.handleMessage(AbstractNetconfSessionNegotiator.java:137) [classes/:na]
at org.opendaylight.controller.netconf.util.AbstractNetconfSessionNegotiator.handleMessage(AbstractNetconfSessionNegotiator.java:42) [classes/:na]
at org.opendaylight.protocol.framework.AbstractSessionNegotiator.channelRead(AbstractSessionNegotiator.java:92) [protocol-framework-0.5.0-SNAPSHOT.jar:na]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:340) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:326) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:155) [netty-codec-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:340) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:326) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:155) [netty-codec-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:340) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:326) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:116) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:494) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:461) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:378) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:350) [netty-transport-4.0.17.Final.jar:4.0.17.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [netty-common-4.0.17.Final.jar:4.0.17.Final]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]

Also investigate EXI - CHUNK framing co-operation



 Comments   
Comment by Maros Marsalek [ 29/Apr/14 ]

https://git.opendaylight.org/gerrit/#/c/6543/
https://git.opendaylight.org/gerrit/#/c/6544/

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