Uploaded image for project: 'controller'
  1. controller
  2. CONTROLLER-397

Fix chunk framing on netconf server

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Done
    • None
    • None
    • netconf
    • None
    • Operating System: All
      Platform: All

    • 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

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              mmarsale@cisco.com Maros Marsalek
              mmarsale@cisco.com Maros Marsalek
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: