activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Torsten Mielke (JIRA)" <>
Subject [jira] [Commented] (AMQ-5692) Inactivity monitor does not time out on stuck socket writes
Date Fri, 27 Mar 2015 13:18:53 GMT


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:
>             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. 
> {}
>     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

View raw message