qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Artyom Safronov (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (QPID-8097) NullPointerException in AMQP 1.0 plugin using OpenJDK
Date Tue, 06 Feb 2018 14:53:00 GMT

     [ https://issues.apache.org/jira/browse/QPID-8097?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Artyom Safronov updated QPID-8097:
----------------------------------
    Description: 
An unexpected NullPointerException occures in AMQP 1.0 plugin at the first attempt to connect
to the broker using *OpenJDK*.

The problem was found while running Qpid in unit tests that verify code communicated with
the broker through AQMP. There is a test case that starts Qpid before each test and stops
it after it. That test case verifies a module that establishes a connection with the broker.
The broker refuses the connection because of NullPointerException (see the attached stacktrace). Using *Oracle
JDK* all tests run fine.

+The first strange+ thing looks like this. Only a test that does the first attempt to connect
always fails. The rest tests run successfully although Qpid are restarted. So the order of
tests is not important. The project is built using Maven and all its plugins are run within
+a single process+ (without fork ability).

+The second strange+ thing is that the behaivor of Qpid slightly differs using two different
*OpenJDK* versions.

In a case of *1.8.0_131* version the broker accepts a transport connection but rejects "OPEN"
frame with the next error:
{code:java}
io.vertx.core.impl.NoStackTraceThrowable: Error{condition=amqp:not-found, description='Unknown
hostname in connection open: 'default'', info=null}
{code}
 In a case of *1.8.0_161* version the broker rejects a transport connection instantly with
the next exception:
{code:java}
io.vertx.core.VertxException: Disconnected
 at io.vertx.proton.impl.ProtonClientImpl.lambda$null$0(ProtonClientImpl.java:80) ~[vertx-proton-3.5.0.jar:?]
 at io.vertx.proton.impl.ProtonConnectionImpl.fireDisconnect(ProtonConnectionImpl.java:374)
~[vertx-proton-3.5.0.jar:?]
 at io.vertx.proton.impl.ProtonTransport.handleSocketEnd(ProtonTransport.java:89) ~[vertx-proton-3.5.0.jar:?]
 at io.vertx.core.net.impl.NetSocketImpl.handleClosed(NetSocketImpl.java:345) ~[vertx-core-3.5.0.jar:?]
 at io.vertx.core.impl.ContextImpl.lambda$wrapTask$2(ContextImpl.java:342) ~[vertx-core-3.5.0.jar:?]
 at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:200) [vertx-core-3.5.0.jar:?]
 at io.vertx.core.net.impl.VertxHandler.channelInactive(VertxHandler.java:134) [vertx-core-3.5.0.jar:?]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1354)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:917)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:763) [netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
[netty-common-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403)
[netty-common-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463) [netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
[netty-common-4.1.15.Final.jar:4.1.15.Final]
 at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161-debug]{code}

  was:
An unexpected NullPointerException occures in AMQP 1.0 plugin at the first attempt to connect
to the broker using *OpenJDK*.

The problem was found while running Qpid in unit tests that verify code communicated with
the broker through AQMP. There is a test case that starts Qpid before each test and stops
it after it. That test case verifies a module that establishes a connection with the broker.
The broker refuses the connection because of NullPointerException (see the attached stacktrace). Using *Oracle
JDK* all tests run fine.

+The first strange+ thing looks like this. Only a test that does the first attempt to connect
always fails. The rest tests run successfully although Qpid are restarted. So the order of
tests is not important. The project is built using Maven and all its plugins are run within
a single process (without fork ability).

+The second strange+ thing is that the behaivor of Qpid slightly differs using two different
*OpenJDK* versions.

In a case of *1.8.0_131* version the broker accepts a transport connection but rejects "OPEN"
frame with the next error:
{code:java}
io.vertx.core.impl.NoStackTraceThrowable: Error{condition=amqp:not-found, description='Unknown
hostname in connection open: 'default'', info=null}
{code}
 In a case of *1.8.0_161* version the broker rejects a transport connection instantly with
the next exception:
{code:java}
io.vertx.core.VertxException: Disconnected
 at io.vertx.proton.impl.ProtonClientImpl.lambda$null$0(ProtonClientImpl.java:80) ~[vertx-proton-3.5.0.jar:?]
 at io.vertx.proton.impl.ProtonConnectionImpl.fireDisconnect(ProtonConnectionImpl.java:374)
~[vertx-proton-3.5.0.jar:?]
 at io.vertx.proton.impl.ProtonTransport.handleSocketEnd(ProtonTransport.java:89) ~[vertx-proton-3.5.0.jar:?]
 at io.vertx.core.net.impl.NetSocketImpl.handleClosed(NetSocketImpl.java:345) ~[vertx-core-3.5.0.jar:?]
 at io.vertx.core.impl.ContextImpl.lambda$wrapTask$2(ContextImpl.java:342) ~[vertx-core-3.5.0.jar:?]
 at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:200) [vertx-core-3.5.0.jar:?]
 at io.vertx.core.net.impl.VertxHandler.channelInactive(VertxHandler.java:134) [vertx-core-3.5.0.jar:?]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1354)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:917)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:763) [netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
[netty-common-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403)
[netty-common-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463) [netty-transport-4.1.15.Final.jar:4.1.15.Final]
 at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
[netty-common-4.1.15.Final.jar:4.1.15.Final]
 at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161-debug]{code}


> NullPointerException in AMQP 1.0 plugin using OpenJDK
> -----------------------------------------------------
>
>                 Key: QPID-8097
>                 URL: https://issues.apache.org/jira/browse/QPID-8097
>             Project: Qpid
>          Issue Type: Bug
>          Components: Broker-J
>    Affects Versions: qpid-java-6.1.5
>            Reporter: Artyom Safronov
>            Priority: Major
>         Attachments: Qpid stacktrace.txt
>
>
> An unexpected NullPointerException occures in AMQP 1.0 plugin at the first attempt to
connect to the broker using *OpenJDK*.
> The problem was found while running Qpid in unit tests that verify code communicated
with the broker through AQMP. There is a test case that starts Qpid before each test and stops
it after it. That test case verifies a module that establishes a connection with the broker.
The broker refuses the connection because of NullPointerException (see the attached stacktrace). Using *Oracle
JDK* all tests run fine.
> +The first strange+ thing looks like this. Only a test that does the first attempt to
connect always fails. The rest tests run successfully although Qpid are restarted. So the
order of tests is not important. The project is built using Maven and all its plugins are
run within +a single process+ (without fork ability).
> +The second strange+ thing is that the behaivor of Qpid slightly differs using two different
*OpenJDK* versions.
> In a case of *1.8.0_131* version the broker accepts a transport connection but rejects
"OPEN" frame with the next error:
> {code:java}
> io.vertx.core.impl.NoStackTraceThrowable: Error{condition=amqp:not-found, description='Unknown
hostname in connection open: 'default'', info=null}
> {code}
>  In a case of *1.8.0_161* version the broker rejects a transport connection instantly
with the next exception:
> {code:java}
> io.vertx.core.VertxException: Disconnected
>  at io.vertx.proton.impl.ProtonClientImpl.lambda$null$0(ProtonClientImpl.java:80) ~[vertx-proton-3.5.0.jar:?]
>  at io.vertx.proton.impl.ProtonConnectionImpl.fireDisconnect(ProtonConnectionImpl.java:374)
~[vertx-proton-3.5.0.jar:?]
>  at io.vertx.proton.impl.ProtonTransport.handleSocketEnd(ProtonTransport.java:89) ~[vertx-proton-3.5.0.jar:?]
>  at io.vertx.core.net.impl.NetSocketImpl.handleClosed(NetSocketImpl.java:345) ~[vertx-core-3.5.0.jar:?]
>  at io.vertx.core.impl.ContextImpl.lambda$wrapTask$2(ContextImpl.java:342) ~[vertx-core-3.5.0.jar:?]
>  at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:200) [vertx-core-3.5.0.jar:?]
>  at io.vertx.core.net.impl.VertxHandler.channelInactive(VertxHandler.java:134) [vertx-core-3.5.0.jar:?]
>  at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
>  at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
>  at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
>  at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1354)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
>  at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
>  at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
>  at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:917)
[netty-transport-4.1.15.Final.jar:4.1.15.Final]
>  at io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:763) [netty-transport-4.1.15.Final.jar:4.1.15.Final]
>  at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
[netty-common-4.1.15.Final.jar:4.1.15.Final]
>  at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403)
[netty-common-4.1.15.Final.jar:4.1.15.Final]
>  at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463) [netty-transport-4.1.15.Final.jar:4.1.15.Final]
>  at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
[netty-common-4.1.15.Final.jar:4.1.15.Final]
>  at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161-debug]{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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


Mime
View raw message