bug-classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug classpath/58474] New: SSL protocol error with classpath 0.91 (ends


From: florent.monjalet at gmail dot com
Subject: [Bug classpath/58474] New: SSL protocol error with classpath 0.91 (ends by a broken pipe/timeout)
Date: Thu, 19 Sep 2013 12:37:26 +0000

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58474



            Bug ID: 58474

           Summary: SSL protocol error with classpath 0.91 (ends by a

                    broken pipe/timeout)

           Product: classpath

           Version: 0.91

            Status: UNCONFIRMED

          Severity: major

          Priority: P3

         Component: classpath

          Assignee: unassigned at gcc dot gnu.org

          Reporter: florent.monjalet at gmail dot com



Hi,



I am currently working on a client that runs in JamVM 1.4.3 with classpath

0.91, the whole thing running in an Eclipse Equinox OSGi environment the co
de

also undergoes a retrotranslation phase (from 1.6 to 1.4), even though this

last process never caused us any trouble. I have to connect to an SSLv3 ser
ver

(RabbitMQ server in that case). The trust store is in GKR format, and the k
eys

in pem format (JessieX509 algorithm to import them). The first error I had 
was

a org.metastatic.jessie.pki.X500Name not found, which I could fix by provid
ing

some libjessie classes. Once that provided, the SSL connection hangs for 10

seconds, and I get a IOException broken pipe (see stacktrace [1] below) aft
er.

The server part indicates a handshake_timeout exception, and closes the

connection. (On one other computer I get an EOFException, see stacktrace [2
].)

When looking at the communication with wireshark, it seems that it is badly

handled by classpath, for some reason: several 1-lengthed packets are sent,
 and

the overall communication is very different from a normal SSL handshake.



The exact same code works fine with JamVM 1.5.4 and GNU Classpath 0.98.

However, this code has to run on embedded devices, and it is not possible f
or

us to upgrade to a newer version of classpath and jamvm. 



Does anyone have any idea on how to fix this? Has this bug been seen before
? I

tried to override some classpath 0.91 with the newer ones from 0.98, but of

course the process is rather complicated since some of the gnu.* interfaces

have changed since, and some classes have been added, including native ones.



Thanks in advance for any clue or answer.



Florent





Stacktrace [1]:

java.io.IOException: Broken pipe    (original error in French: Relais bris
é

(pipe))

   at gnu.java.net.VMPlainSocketImpl.write(Native Method)

   at gnu.java.net.VMPlainSocketImpl.write(VMPlainSocketImpl.java:243)

   at gnu.java.net.PlainSocketImpl.write(PlainSocketImpl.java:369)

   at

gnu.java.net.PlainSocketImpl$SocketOutputStream.write(PlainSocketImpl.java:
498)

   at gnu.javax.net.ssl.provider.ProtocolVersion.write(ProtocolVersion.java
:96)

   at

gnu.javax.net.ssl.provider.RecordOutputStream.write(RecordOutputStream.java
:179)

   at

gnu.javax.net.ssl.provider.SSLSocketOutputStream.write(SSLSocketOutputStrea
m.java:101)

   at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:109)

   at java.io.DataOutputStream.flush(DataOutputStream.java:90)

   at

com.rabbitmq.client.impl.SocketFrameHandler.flush(SocketFrameHandler.java:1
42)

   at com.rabbitmq.client.impl.AMQConnection.flush(AMQConnection.java:488)

   at com.rabbitmq.client.impl.AMQCommand.transmit(AMQCommand.java:125)

   at

com.rabbitmq.client.impl.AMQChannel.quiescingTransmit(AMQChannel.java:316)

   at

com.rabbitmq.client.impl.AMQChannel.quiescingTransmit(AMQChannel.java:298)

   at com.rabbitmq.client.impl.AMQChannel.quiescingRpc(AMQChannel.java:233)

   at com.rabbitmq.client.impl.AMQChannel.rpc(AMQChannel.java:224)

   at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:209)

   at com.rabbitmq.client.impl.AMQChannel.rpc(AMQChannel.java:202)

   at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:347)

   at

com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:
516)

   at

com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:
533)

   at

com.redbite.rededge.amqp.AmqpChannelProvider.initConnection(AmqpChannelProv
ider.java:132)

   at

com.redbite.rededge.amqp.AmqpChannelProvider.createChannel(AmqpChannelProvi
der.java:125)

   at

com.redbite.rededge.obs.capture.communication.amqp.AmqpObsDeviceCommunicati
onManager.getChannel(AmqpObsDeviceCommunicationManager.java:249)

   at

com.redbite.rededge.obs.capture.remoteshell.amqp.AmqpRemoteShell.<init>(Amq
pRemoteShell.java:42)

   at

com.redbite.rededge.obs.capture.remoteshell.amqp.AmqpRemoteShell.getInstanc
e(AmqpRemoteShell.java:37)

   at

com.redbite.rededge.obs.capture.communication.amqp.Activator.start(Activato
r.java:46)

   at

org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleCont
extImpl.java:711)

   at java.security.AccessController.doPrivileged(AccessController.java:154)

   at

org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(B
undleContextImpl.java:702)



Stacktrace [2]:

java.io.EOFException

   at java.io.DataInputStream.convertToUnsignedByte(DataInputStream.java:65
4)

   at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:466)

   at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:95)

   at

com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.ja
va:131)

   at

com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:515)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]