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:18:53 UTC

[jira] [Commented] (AMQ-5692) Inactivity monitor does not time out on stuck socket writes

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

Torsten Mielke commented on AMQ-5692:
-------------------------------------

A workaround currently is to configure transport.soWriteTimeout on the broker transport connector url. It will make tcp writes time out but this config is really independent of the inactivity monitor configuration and should not be required.

>  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
>              Labels: broker, inactivity
>
> 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)