You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Andrew Stitcher (JIRA)" <ji...@apache.org> on 2014/11/25 18:37:12 UTC

[jira] [Comment Edited] (QPID-6213) qpidd misses heartbeats

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

Andrew Stitcher edited comment on QPID-6213 at 11/25/14 5:36 PM:
-----------------------------------------------------------------

I don't think my fix would schedule the next purge whilst one was currently happening unless the purge took long enough that it was longer than the between cleaning interval.

Is it really the case that purging the queues can take longer than the 10 minutes between purges?

I attach a slightly better behaved change, which will continuously push of the next queue cleaner trigger as the purges are happening - in this case a single purge would have to take longer than the cleaner interval.

Note that .restart() has the effect of pushing off any timer firing by the timer interval *from now* so if you continually call restart then the timer will never fire. This is how heartbeat processing in the broker works - by continually pushing off the processing of the heatbeat timeout.



was (Author: astitcher):
 don't think my fix would schedule the next purge whilst one was currently happening unless the purge took long enough that it was longer than the between cleaning interval.

Is it really the case that purging the queues can take longer than the 10 minutes between purges?

I attach a slightly better behaved change, which will continuously push of the next queue cleaner trigger as the purges are happening - in this case a single purge would have to take longer than the cleaner interval.

Note that .restart() has the effect of pushing off any timer firing by the timer interval *from now* so if you continually call restart then the timer will never fire. This is how heartbeat processing in the broker works - by continually pushing off the processing of the heatbeat timeout.


> qpidd misses heartbeats
> -----------------------
>
>                 Key: QPID-6213
>                 URL: https://issues.apache.org/jira/browse/QPID-6213
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.30
>            Reporter: Gordon Sim
>            Assignee: Gordon Sim
>             Fix For: 0.31
>
>         Attachments: 0001-QPID-6213-Fix-misuse-of-Timer-in-queue-cleaning-code.patch, QPID-6213_suggested_further_fix.patch, QPID-6213_suggested_further_fix.patch, qpid-6213-svn-01.patch, qpidd.log.gz
>
>
> Caused by https://issues.apache.org/jira/browse/QPID-5758. Reproducer from Pavel Moravec: create many heartbeat enabled connections and queues (e.g. 500 idle receivers, each with their own queue) and have the purge interval relatively short (to speed up reproducing).
> The broker misses heartbeats and connections get timed out.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org