activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQ-3759) ActiveMQConnectionFactory blocks in case of ssl
Date Wed, 07 Mar 2012 16:01:00 GMT

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

Timothy Bish commented on AMQ-3759:
-----------------------------------

The current test fails because the ActiveMQConnectionFactory is waiting for a response on
its socket but the broker is in an loop on onAccept receiving SSLExceptions because the broker
has no SSL configuration.  The reason the method using ActiveMQSSLConnectionFactory fails
is because it can locally detect that its not configured and fail fast.  If you configured
a timeout on the ssl transport so that the socket connect call failed after a delay it would
then work similar to the other test case.
                
> ActiveMQConnectionFactory blocks in case of ssl
> -----------------------------------------------
>
>                 Key: AMQ-3759
>                 URL: https://issues.apache.org/jira/browse/AMQ-3759
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: JMS client
>    Affects Versions: 5.4.3, 5.5.1
>            Reporter: Krzysztof Olszewski
>         Attachments: ConnectionFactoryTest.java, ConnectionFactoryWithSslContextTest.java
>
>
> When ActiveMQConnectionFactory is used to create connection to broker using SSL the thread
becomes blocked (waiting infinite on SocketInputStream#socketRead0).
> Stacktrace:
> "ActiveMQ Transport: ssl://localhost/127.0.0.1:9099" prio=6 tid=0x0000000006105000 nid=0x463c
waiting for monitor entry [0x0000000008a2f000]
>    java.lang.Thread.State: BLOCKED (on object monitor)
> 	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
> 	- waiting to lock <0x000000078219d8f8> (a java.lang.Object)
> 	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(Unknown Source)
> 	at com.sun.net.ssl.internal.ssl.AppInputStream.read(Unknown Source)
> 	- locked <0x000000078219d9d0> (a com.sun.net.ssl.internal.ssl.AppInputStream)
> 	at org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:50)
> 	at org.apache.activemq.transport.tcp.TcpTransport$2.fill(TcpTransport.java:576)
> 	at org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:58)
> 	at org.apache.activemq.transport.tcp.TcpTransport$2.read(TcpTransport.java:561)
> 	at java.io.DataInputStream.readInt(Unknown Source)
> 	at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:269)
> 	at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:227)
> 	at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:219)
> 	at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:202)
> 	at java.lang.Thread.run(Unknown Source)
> "Thread-4" prio=6 tid=0x0000000006103800 nid=0x2bb8 runnable [0x000000000872e000]
>    java.lang.Thread.State: RUNNABLE
> 	at java.net.SocketInputStream.socketRead0(Native Method)
> 	at java.net.SocketInputStream.read(Unknown Source)
> 	at com.sun.net.ssl.internal.ssl.InputRecord.readFully(Unknown Source)
> 	at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
> 	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
> 	- locked <0x00000007821b14c8> (a java.lang.Object)
> 	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
> 	- locked <0x000000078219d8f8> (a java.lang.Object)
> 	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(Unknown Source)
> 	at com.sun.net.ssl.internal.ssl.AppOutputStream.write(Unknown Source)
> 	- locked <0x00000007821a2a60> (a com.sun.net.ssl.internal.ssl.AppOutputStream)
> 	at org.apache.activemq.transport.tcp.TcpBufferedOutputStream.flush(TcpBufferedOutputStream.java:115)
> 	at java.io.DataOutputStream.flush(Unknown Source)
> 	at org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:182)
> 	at org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:254)
> 	- locked <0x00000007821a2898> (a java.util.concurrent.atomic.AtomicBoolean)
> 	at org.apache.activemq.transport.WireFormatNegotiator.sendWireFormat(WireFormatNegotiator.java:168)
> 	at org.apache.activemq.transport.WireFormatNegotiator.sendWireFormat(WireFormatNegotiator.java:84)
> 	at org.apache.activemq.transport.WireFormatNegotiator.start(WireFormatNegotiator.java:74)
> 	at org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:58)
> 	at org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:58)
> 	at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:266)
> 	at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:230)
> 	at org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:178)
> 	at org.apache.activemq.broker.test.SslDeadlockTest.sendMsg(SslDeadlockTest.java:53)
> 	at org.apache.activemq.broker.test.SslDeadlockTest.testFail(SslDeadlockTest.java:41)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> 	at java.lang.reflect.Method.invoke(Unknown Source)
> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> 	at org.junit.internal.runners.statements.FailOnTimeout$1.run(FailOnTimeout.java:28)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message