qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (QPID-6350) [AMQP0-10] Original connection exception lost if Broker closes socket before client
Date Wed, 04 Feb 2015 16:54:35 GMT

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

ASF subversion and git services commented on QPID-6350:
-------------------------------------------------------

Commit 1657312 from [~k-wall] in branch 'qpid/trunk'
[ https://svn.apache.org/r1657312 ]

QPID-6350: [Java Client] Partial revert of r1655877.

My solution was not solving the problem in all situations

> [AMQP0-10] Original connection exception lost if Broker closes socket before client
> -----------------------------------------------------------------------------------
>
>                 Key: QPID-6350
>                 URL: https://issues.apache.org/jira/browse/QPID-6350
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>            Reporter: Keith Wall
>            Priority: Minor
>             Fix For: 0.31
>
>
> If the JMS Client client encounters an exception whilst interacting with the Broker and
the Broker shuts down the its socket before the client, the original cause of the exception
is lost.
> We see this happen sporadically new test SSLTest#testSSLConnectionToPlainPortRejected
on slow CI boxes. 
> {noformat}
> Error Message
> Unexpected exception message : Error creating connection: Connection reset
> Stacktrace
> junit.framework.AssertionFailedError: Unexpected exception message : Error creating connection:
Connection reset
> 	at junit.framework.Assert.fail(Assert.java:57)
> 	at junit.framework.Assert.assertTrue(Assert.java:22)
> 	at junit.framework.TestCase.assertTrue(TestCase.java:192)
> 	at org.apache.qpid.client.ssl.SSLTest.testSSLConnectionToPlainPortRejected(SSLTest.java:116)
> {noformat}
> From the logs, it can be seen that the original (useful) cause of the connection failure
is being overwritten, and the less useful "connection reset" being returned to the application.
> {noformat}
> 15-01-29 10:36:08,372 ERROR [IoReceiver - localhost/127.0.0.1:15672] (ssl.SSLReceiver)
- Error caught in SSLReceiver
> javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
> 	at sun.security.ssl.EngineInputRecord.bytesInCompletePacket(EngineInputRecord.java:171)
> 	at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:845)
> 	at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:758)
> 	at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
> 	at org.apache.qpid.transport.network.security.ssl.SSLReceiver.received(SSLReceiver.java:103)
> 	at org.apache.qpid.transport.network.security.ssl.SSLReceiver.received(SSLReceiver.java:36)
> 	at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:161)
> 	at java.lang.Thread.run(Thread.java:745)
> 2015-01-29 10:36:08,373 DEBUG [IoReceiver - localhost/127.0.0.1:15672] (transport.Connection)
- exception: Error in SSLReceiver: Unrecognized SSL message, plaintext connection? state :
OPENING
> 2015-01-29 10:36:08,373 DEBUG [main] (ssl.SSLSender) - Closing SSL connection
> 2015-01-29 10:36:08,373 DEBUG [IoReceiver - localhost/127.0.0.1:15672] (transport.Connection)
- exception: Connection reset state : OPENING
> 2015-01-29 10:36:08,373 DEBUG [IoReceiver - localhost/127.0.0.1:15672] (transport.Connection)
- connection closed: conn:af88469
> 2015-01-29 10:36:08,373 INFO  [main] (client.AMQConnection) - Unable to connect to broker
at tcp://localhost:15672?ssl='true'
> org.apache.qpid.AMQException: Cannot connect to broker: Connection reset [error code
200: reply success]
> 	at org.apache.qpid.client.AMQConnectionDelegate_0_10.makeBrokerConnection(AMQConnectionDelegate_0_10.java:241)
> 	at org.apache.qpid.client.AMQConnection.makeBrokerConnection(AMQConnection.java:645)
> 	at org.apache.qpid.client.AMQConnection.<init>(AMQConnection.java:425)
> 	at org.apache.qpid.client.AMQConnectionFactory.createConnection(AMQConnectionFactory.java:158)
> 	at org.apache.qpid.client.AMQConnectionFactory.createConnection(AMQConnectionFactory.java:137)
> 	at org.apache.qpid.test.utils.QpidBrokerTestCase.getConnection(QpidBrokerTestCase.java:907)
> 	at org.apache.qpid.client.ssl.SSLTest.testSSLConnectionToPlainPortRejected(SSLTest.java:110)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:606)
> 	at junit.framework.TestCase.runTest(TestCase.java:176)
> 	at junit.framework.TestCase.runBare(TestCase.java:141)
> 	at org.apache.qpid.test.utils.QpidBrokerTestCase.runBare(QpidBrokerTestCase.java:272)
> 	at junit.framework.TestResult$1.protect(TestResult.java:122)
> 	at junit.framework.TestResult.runProtected(TestResult.java:142)
> 	at junit.framework.TestResult.run(TestResult.java:125)
> 	at junit.framework.TestCase.run(TestCase.java:129)
> 	at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:148)
> 	at junit.framework.TestSuite.runTest(TestSuite.java:255)
> 	at junit.framework.TestSuite.run(TestSuite.java:250)
> 	at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84)
> 	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
> 	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
> 	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
> 	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
> 	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
> 	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
> Caused by: org.apache.qpid.transport.ConnectionException: Connection reset
> 	at org.apache.qpid.transport.Connection.close(Connection.java:670)
> 	at org.apache.qpid.transport.Connection.close(Connection.java:616)
> 	at org.apache.qpid.transport.Connection.connect(Connection.java:273)
> 	at org.apache.qpid.client.AMQConnectionDelegate_0_10.makeBrokerConnection(AMQConnectionDelegate_0_10.java:221)
> 	... 27 more
> Caused by: org.apache.qpid.transport.ConnectionException: Connection reset
> 	at org.apache.qpid.transport.Connection.exception(Connection.java:564)
> 	at org.apache.qpid.transport.network.Assembler.exception(Assembler.java:107)
> 	at org.apache.qpid.transport.network.InputHandler.exception(InputHandler.java:209)
> 	at org.apache.qpid.transport.network.security.ssl.SSLReceiver.exception(SSLReceiver.java:72)
> 	at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:217)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: java.net.SocketException: Connection reset
> 	at java.net.SocketInputStream.read(SocketInputStream.java:196)
> 	at java.net.SocketInputStream.read(SocketInputStream.java:122)
> 	at org.apache.qpid.transport.network.io.IoReceiver.run(IoReceiver.java:156)
> 	... 1 more
> 2015-01-29 10:36:08,374 DEBUG [main] (jms.FailoverPolicy) - All failover methods exhausted
> {noformat}
> The 0-10 transport class Connecton should be change to keep the first exception and log
any subsequent errors.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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


Mime
View raw message