You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Torsten Mielke (JIRA)" <ji...@apache.org> on 2015/03/27 14:00:56 UTC
[jira] [Created] (AMQ-5692) Inactivity monitor does not time out
on stuck socket writes
Torsten Mielke created AMQ-5692:
-----------------------------------
Summary: Inactivity monitor does not time out on stuck socket writes
Key: AMQ-5692
URL: https://issues.apache.org/jira/browse/AMQ-5692
Project: ActiveMQ
Issue Type: Improvement
Components: Broker
Affects Versions: 5.11.1
Reporter: Torsten Mielke
It is possible that a socket write is stuck but the inactivity monitor currently does not time out on a socketWrite.
{code:title=AbstractInactivityMonitor.java}
final void writeCheck() {
if (inSend.get()) {
LOG.trace("Send in progress. Skipping write check.");
return;
}
{code}
As a result a connection that is stuck in a tcp write will never be taken down due to inactivity. If a client misbehaves the broker will not be able to clear that connection as part of the inactivity monitoring.
Now AMQ-2511 introduced a counter on the reachCheck() to detect it a socket read in progress really retrieves data or is stuck.
I propose for a similar mechanism being applied on the writeCheck() operation so that a socket write that is stuck can be detected and the connection can be closed.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)