activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQ-4106) STOMP+NIO and Heartbeats gives consistent InactivityIOException
Date Tue, 23 Oct 2012 15:33:13 GMT

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

Timothy Bish commented on AMQ-4106:
-----------------------------------

There's a couple issues in the NIO layer mainly relating to not keeping the TcpTransports
receiverCounter moving which causes the InactivityMonitor to think that no reads are occurring
when we are only getting STOMP keep alives which are just newlines.  The StompCodec also has
a bug that's causing it to get stuck because of this. 
                
> STOMP+NIO and Heartbeats gives consistent InactivityIOException
> ---------------------------------------------------------------
>
>                 Key: AMQ-4106
>                 URL: https://issues.apache.org/jira/browse/AMQ-4106
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: stomp
>    Affects Versions: 5.7.0
>         Environment: Kernel:Linux tjjackson 3.0.0-26-generic #43-Ubuntu SMP Tue Sep 25
17:19:22 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
> AMQ: 5.7.0
> Ubuntu: 11.10
> Java: 1.6.0_24
> From activemq.xml:
> <transportConnector name="stomp" 
>   uri="stomp+nio://0.0.0.0:61613?trace=true"/>
>            Reporter: Guy Allard
>            Assignee: Timothy Bish
>             Fix For: 5.8.0
>
>         Attachments: nioheartb.rb
>
>
> When a stomp 1.1 client:
> a) connects to a stomp+nio transport
> b) elects to send heartbeats when the network is idle
> the first several heartbeat sends appear to succeed, but then the connection is forcibly
closed by the broker.
> From activemq.log:
> 2012-10-14 09:53:07,755 | WARN  | Transport Connection to: tcp://127.0.0.1:36440 failed:
org.apache.activemq.transport.InactivityIOException: Channel was inactive for too (>10000)
long: tcp://127.0.0.1:36440 | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ
InactivityMonitor Worker
> From wrapper.log:
> INFO   | jvm 1    | 2012/10/14 09:53:07 |  WARN | Transport Connection to: tcp://127.0.0.1:36440
failed: org.apache.activemq.transport.InactivityIOException: Channel was inactive for too
(>10000) long: tcp://127.0.0.1:36440
> I am able to reproduce this with either:
> a) the current Ruby stomp gem
> b) the current golang stompngo package
> It is unclear to me whether:
> a) the AMQ heartbeat code is not tolerant as the specification suggests
> b) the AMQ heartbeat receiver is not reading or recognizing heartbeats at all
> In all cases these tests succeed with either:
> a) AMQ 5.7.0 stomp without nio
> b) Apollo
> c) RabbitMQ
> d) a client that only receives heartbeats, but does not send them
> I will attach a Ruby client example shortly.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message