You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2021/12/14 14:32:00 UTC

[jira] [Commented] (QPIDJMS-549) NPE logged during failover after remote close during connection creation

    [ https://issues.apache.org/jira/browse/QPIDJMS-549?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17459193#comment-17459193 ] 

ASF subversion and git services commented on QPIDJMS-549:
---------------------------------------------------------

Commit 763316dc3028795d463c74a2e0ea1f41fa9de7bd in qpid-jms's branch refs/heads/0.x from Robbie Gemmell
[ https://gitbox.apache.org/repos/asf?p=qpid-jms.git;h=763316d ]

QPIDJMS-549: use retained ref that isnt nulled during failover, and avoid multiple signals to the related code that let it NPE more than once

(cherry picked from commit 2f6bde0a388cd1431cacb154ba55a78c22e263af)


> NPE logged during failover after remote close during connection creation
> ------------------------------------------------------------------------
>
>                 Key: QPIDJMS-549
>                 URL: https://issues.apache.org/jira/browse/QPIDJMS-549
>             Project: Qpid JMS
>          Issue Type: Bug
>          Components: qpid-jms-client
>    Affects Versions: 0.59.0, 1.2.0
>            Reporter: Gary Tully
>            Assignee: Robbie Gemmell
>            Priority: Minor
>             Fix For: 1.3.0
>
>
> An NPE can be logged during failover handling after a remote closure/redirect during connection creation. The NPE is it itself also handled and so the connection does still get established to the other peer as it should be, but with the NPE(s) logged.
> {code:java}
> [WARNING] Caught problem during update processing: null
> java.lang.NullPointerException
>     at org.apache.qpid.jms.provider.failover.FailoverProvider$CreateConnectionRequest.onFailure (FailoverProvider.java:1299)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider$2$1.onFailure (AmqpProvider.java:459)
>     at org.apache.qpid.jms.provider.amqp.builders.AmqpConnectionBuilder$1$1.onFailure (AmqpConnectionBuilder.java:91)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider.fireProviderException (AmqpProvider.java:1159)
>     at org.apache.qpid.jms.provider.amqp.AmqpAbstractResource.closeResource (AmqpAbstractResource.java:185)
>     at org.apache.qpid.jms.provider.amqp.AmqpConnection.processRemoteClose (AmqpConnection.java:151)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider.processUpdates (AmqpProvider.java:962)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider.onData (AmqpProvider.java:872)
>     at org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0 (NettyTcpTransport.java:563)
>     at org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0 (NettyTcpTransport.java:556)
>     at io.netty.channel.SimpleChannelInboundHandler.channelRead (SimpleChannelInboundHandler.java:99)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:379)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:365)
>     at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead (AbstractChannelHandlerContext.java:357)
>     at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead (DefaultChannelPipeline.java:1410)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:379)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:365)
>     at io.netty.channel.DefaultChannelPipeline.fireChannelRead (DefaultChannelPipeline.java:919)
>     at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read (AbstractNioByteChannel.java:166)
>     at io.netty.channel.nio.NioEventLoop.processSelectedKey (NioEventLoop.java:719)
>     at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized (NioEventLoop.java:655)
>     at io.netty.channel.nio.NioEventLoop.processSelectedKeys (NioEventLoop.java:581)
>     at io.netty.channel.nio.NioEventLoop.run (NioEventLoop.java:493)
>     at io.netty.util.concurrent.SingleThreadEventExecutor$4.run (SingleThreadEventExecutor.java:986)
>     at io.netty.util.internal.ThreadExecutorMap$2.run (ThreadExecutorMap.java:74)
>     at java.lang.Thread.run (Thread.java:748)
> [WARNING] Caught problem during data processing: null
> java.lang.NullPointerException
>     at org.apache.qpid.jms.provider.failover.FailoverProvider$CreateConnectionRequest.onFailure (FailoverProvider.java:1299)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider$2$1.onFailure (AmqpProvider.java:459)
>     at org.apache.qpid.jms.provider.amqp.builders.AmqpConnectionBuilder$1$1.onFailure (AmqpConnectionBuilder.java:91)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider.fireProviderException (AmqpProvider.java:1159)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider.processUpdates (AmqpProvider.java:1040)
>     at org.apache.qpid.jms.provider.amqp.AmqpProvider.onData (AmqpProvider.java:872)
>     at org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0 (NettyTcpTransport.java:563)
>     at org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0 (NettyTcpTransport.java:556)
>     at io.netty.channel.SimpleChannelInboundHandler.channelRead (SimpleChannelInboundHandler.java:99)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:379)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:365)
>     at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead (AbstractChannelHandlerContext.java:357)
>     at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead (DefaultChannelPipeline.java:1410)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:379)
>     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:365)
>     at io.netty.channel.DefaultChannelPipeline.fireChannelRead (DefaultChannelPipeline.java:919)
>     at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read (AbstractNioByteChannel.java:166)
>     at io.netty.channel.nio.NioEventLoop.processSelectedKey (NioEventLoop.java:719)
>     at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized (NioEventLoop.java:655)
>     at io.netty.channel.nio.NioEventLoop.processSelectedKeys (NioEventLoop.java:581)
>     at io.netty.channel.nio.NioEventLoop.run (NioEventLoop.java:493)
>     at io.netty.util.concurrent.SingleThreadEventExecutor$4.run (SingleThreadEventExecutor.java:986)
>     at io.netty.util.internal.ThreadExecutorMap$2.run (ThreadExecutorMap.java:74)
>     at java.lang.Thread.run (Thread.java:748)
> [INFO] Transport failed: null
> {code}
> scenario is two connection on the same failover connection factory where both are remotely closed - scenario is Artemis redirector rejecting the connection.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org