Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
5.6.0, 5.7.0, 5.8.0
-
None
-
None
Description
We have seen a new bug in the stomp+nio+ssl connector (reproducible), the same error has been seen with stomp+ssl as well (not reproducible for now).
Setup:
- one producer send ~10000 as N messages of different sizes to a queue
- different sequential consumers (> 3) consume 1/Nth of the messages from the queue
The unit test provided add a test to StompLoadTest, with this new test:
- StompLoadTest always succeed
- StompSSLLoadTest succeeded but we noticed bad record MAC error in a deployed broker
- StompNIOSSLLoadTest always fails with one of the two exceptions reported below
testStompSlice(org.apache.activemq.transport.stomp.StompNIOSSLLoadTest) Time elapsed: 13.551 sec <<< ERROR! javax.net.ssl.SSLException: Invalid padding at sun.security.ssl.Alerts.getSSLException(Alerts.java:208) at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1902) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:981) at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:884) at sun.security.ssl.AppInputStream.read(AppInputStream.java:102) at sun.security.ssl.AppInputStream.read(AppInputStream.java:69) at java.io.DataInputStream.readByte(DataInputStream.java:265) at org.apache.activemq.transport.stomp.StompWireFormat.unmarshal(StompWireFormat.java:123) at org.apache.activemq.transport.stomp.StompConnection.receive(StompConnection.java:77) at org.apache.activemq.transport.stomp.StompLoadTest.testStompSlice(StompLoadTest.java:261)
testStompSlice(org.apache.activemq.transport.stomp.StompNIOSSLLoadTest) Time elapsed: 14.86 sec <<< ERROR! javax.net.ssl.SSLException: bad record MAC at sun.security.ssl.Alerts.getSSLException(Alerts.java:208) at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1902) at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1855) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:988) at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:884) at sun.security.ssl.AppInputStream.read(AppInputStream.java:102) at sun.security.ssl.AppInputStream.read(AppInputStream.java:69) at java.io.DataInputStream.readByte(DataInputStream.java:265) at org.apache.activemq.transport.stomp.StompWireFormat.readHeaderLine(StompWireFormat.java:155) at org.apache.activemq.transport.stomp.StompWireFormat.readLine(StompWireFormat.java:148) at org.apache.activemq.transport.stomp.StompWireFormat.parseAction(StompWireFormat.java:170) at org.apache.activemq.transport.stomp.StompWireFormat.unmarshal(StompWireFormat.java:98) at org.apache.activemq.transport.stomp.StompConnection.receive(StompConnection.java:77) at org.apache.activemq.transport.stomp.StompLoadTest.testStompSlice(StompLoadTest.java:261)