Hi ,
 i am using Camel Main to start Camel as standalone process. I have a route
defined in a YAML file. The route uses netty TCP to open a port and listen
for requests.
When i send request to this camel route using an NIO Client, i am receiving
the response. On The camel side i see a netty exception about Illegal
Reference count.
i also notice that the netty consumer has written the data as per the below
log message, but this is not being sent to the NIO Client, i get the
exception after the below message.

 thread #4 -
NettyConsumerExecutorGroup];1;DEBUG;org.apache.camel.component.netty.NettyConsumer;Channel:
[id: 0xc4e2b69a, L:/127.0.0.1:1234 - R:/127.0.0.1:53872] writing body:
PooledUnsafeDirectByteBuf(ridx: 0, widx: 19, cap: 2048)

I would greatly appreciate it if you could provide any insights into what
is going wrong here.

route snippet is as below:
- route:
    id: route-2561
    from:
      id: from-3554
      uri: netty
      parameters:
        host: 127.0.0.1
        port: "1234"
        protocol: tcp
        allowDefaultCodec: false
        reuseChannel: true
        #decoders: "#messageDecoder"
        exchangePattern: InOut
        noReplyLogLevel: TRACE
      steps:
        - log:
            id: log-7667
            message: called? ${body}

Exception Trace:

NettyServerTCPWorker];1;WARN ;io.netty.util.ReferenceCountUtil;Failed to
release a message: PooledUnsafeDirectByteBuf(freed)
io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
at
io.netty.util.internal.ReferenceCountUpdater.toLiveRealRefCnt(ReferenceCountUpdater.java:83)
~[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.internal.ReferenceCountUpdater.release(ReferenceCountUpdater.java:148)
~[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:101)
~[netty-buffer-4.1.94.Final.jar:4.1.94.Final]
at io.netty.util.ReferenceCountUtil.release(ReferenceCountUtil.java:90)
~[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.ReferenceCountUtil.safeRelease(ReferenceCountUtil.java:116)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.ChannelOutboundBuffer.remove0(ChannelOutboundBuffer.java:317)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.ChannelOutboundBuffer.failFlushed(ChannelOutboundBuffer.java:671)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannel$AbstractUnsafe.closeOutboundBufferForShutdown(AbstractChannel.java:672)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannel$AbstractUnsafe.shutdownOutput(AbstractChannel.java:666)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannel$AbstractUnsafe.handleWriteError(AbstractChannel.java:953)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:933)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:354)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:895)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1372)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:921)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:941)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at java.lang.Thread.run(Thread.java:837) [?:?]
[Camel Thread #3 - NettyServerTCPWorker];1;WARN
;org.apache.camel.component.netty.NettyConsumer;Caused by:
[org.apache.camel.CamelExchangeException - Cannot write response to /
127.0.0.1:53872. Exchange[]. Caused by:
[io.netty.channel.socket.ChannelOutputShutdownException - Channel output
shutdown]]
org.apache.camel.CamelExchangeException: Cannot write response to /
127.0.0.1:53872. Exchange[]. Caused by:
[io.netty.channel.socket.ChannelOutputShutdownException - Channel output
shutdown]
at
org.apache.camel.component.netty.handlers.ServerResponseFutureListener.operationComplete(ServerResponseFutureListener.java:53)
[camel-netty-4.0.0.jar:4.0.0]
at
org.apache.camel.component.netty.handlers.ServerResponseFutureListener.operationComplete(ServerResponseFutureListener.java:35)
[camel-netty-4.0.0.jar:4.0.0]
at
io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:629)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:118)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.internal.PromiseNotificationUtil.tryFailure(PromiseNotificationUtil.java:64)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.ChannelOutboundBuffer.safeFail(ChannelOutboundBuffer.java:734)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.ChannelOutboundBuffer.remove0(ChannelOutboundBuffer.java:319)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.ChannelOutboundBuffer.failFlushed(ChannelOutboundBuffer.java:671)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannel$AbstractUnsafe.closeOutboundBufferForShutdown(AbstractChannel.java:672)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannel$AbstractUnsafe.shutdownOutput(AbstractChannel.java:666)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannel$AbstractUnsafe.handleWriteError(AbstractChannel.java:953)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:933)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:354)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:895)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1372)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:921)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:941)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannelHandlerContext$WriteTask.run(AbstractChannelHandlerContext.java:1247)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[netty-common-4.1.94.Final.jar:4.1.94.Final]
at java.lang.Thread.run(Thread.java:837) [?:?]
Caused by: io.netty.channel.socket.ChannelOutputShutdownException: Channel
output shutdown
at
io.netty.channel.AbstractChannel$AbstractUnsafe.shutdownOutput(AbstractChannel.java:650)
~[netty-transport-4.1.94.Final.jar:4.1.94.Final]
... 15 more
Caused by: java.lang.NullPointerException: Cannot invoke
"java.nio.ByteBuffer.duplicate()" because "memory" is null
at
io.netty.buffer.PooledUnsafeDirectByteBuf.newInternalNioBuffer(PooledUnsafeDirectByteBuf.java:69)
~[netty-buffer-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.buffer.PooledUnsafeDirectByteBuf.newInternalNioBuffer(PooledUnsafeDirectByteBuf.java:29)
~[netty-buffer-4.1.94.Final.jar:4.1.94.Final]
at io.netty.buffer.PooledByteBuf.internalNioBuffer(PooledByteBuf.java:161)
~[netty-buffer-4.1.94.Final.jar:4.1.94.Final]
at io.netty.buffer.PooledByteBuf._internalNioBuffer(PooledByteBuf.java:191)
~[netty-buffer-4.1.94.Final.jar:4.1.94.Final]
at io.netty.buffer.PooledByteBuf.internalNioBuffer(PooledByteBuf.java:204)
~[netty-buffer-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.ChannelOutboundBuffer.nioBuffers(ChannelOutboundBuffer.java:458)
~[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.socket.nio.NioSocketChannel.doWrite(NioSocketChannel.java:399)
~[netty-transport-4.1.94.Final.jar:4.1.94.Final]
at
io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:931)
~[netty-transport-4.1.94.Final.jar:4.1.94.Final]
... 13 more
-- 
Regards,
Rohan Emmanuel

Reply via email to