[
https://issues.apache.org/jira/browse/AMQ-9569?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17882537#comment-17882537
]
Christopher L. Shannon commented on AMQ-9569:
---------------------------------------------
A change like this should have some tests written before merging to verify
> WriteTimeoutFilter does not timeout SSL write (handshake)
> ---------------------------------------------------------
>
> Key: AMQ-9569
> URL: https://issues.apache.org/jira/browse/AMQ-9569
> Project: ActiveMQ Classic
> Issue Type: Bug
> Affects Versions: 5.18.5
> Reporter: Martin Lichtin
> Assignee: Jean-Baptiste Onofré
> Priority: Major
> Attachments: WriteTimeoutFilter.java
>
>
> WriteTimeoutFilter does not timeout the SSL write (handshake), as can be seen
> by this stack trace.
> {noformat}
> "ActiveMQ Task-5" #195869202 daemon prio=5 os_prio=0 tid=0x00007f8b68090000
> nid=0xe591 runnable [0x00007f8a7f4eb000]
> java.lang.Thread.State: RUNNABLE
> at java.net.SocketInputStream.socketRead0(Native Method)
> at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
> at java.net.SocketInputStream.read(SocketInputStream.java:171)
> at java.net.SocketInputStream.read(SocketInputStream.java:141)
> at
> sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:464)
> at
> sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:165)
> at sun.security.ssl.SSLTransport.decode(SSLTransport.java:109)
> at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1401)
> at
> sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1309)
> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:440)
> at sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:822)
> at sun.security.ssl.SSLSocketImpl.access$200(SSLSocketImpl.java:73)
> at
> sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:1184)
> at
> org.apache.activemq.transport.tcp.TcpBufferedOutputStream.flush(TcpBufferedOutputStream.java:115)
> at java.io.DataOutputStream.flush(DataOutputStream.java:123)
> at
> org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:194)
> at
> org.apache.activemq.transport.AbstractInactivityMonitor.doOnewaySend(AbstractInactivityMonitor.java:335)
> at
> org.apache.activemq.transport.AbstractInactivityMonitor.oneway(AbstractInactivityMonitor.java:317)
> at
> org.apache.activemq.transport.WireFormatNegotiator.sendWireFormat(WireFormatNegotiator.java:181)
> 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:64)
> at
> org.apache.activemq.transport.WriteTimeoutFilter.start(WriteTimeoutFilter.java:132)
> at
> org.apache.activemq.transport.failover.FailoverTransport.doReconnect(FailoverTransport.java:1026)
> - locked <0x00000006caf036c0> (a java.lang.Object)
> at
> org.apache.activemq.transport.failover.FailoverTransport$2.iterate(FailoverTransport.java:151)
> - locked <0x00000006cb402778> (a java.lang.Object)
> at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
> at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:750) {noformat}
> WriteTimeoutFilter.start() method should also register and track the timeout,
> like already done in the oneway() method.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact