qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alan Conway (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (QPID-6213) qpidd misses heartbeats
Date Thu, 27 Nov 2014 16:45:12 GMT

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

Alan Conway commented on QPID-6213:

Re qpid-6213-svn-14.patch: very nice work. Please simplify by getting rid of the old while
loop and making your new code the only way we process, i.e. delete old process(), rename processOneShot()
as process() and get rid of boolean flag to choose between them.

The old loop is just wrong:
- clearly if the callback doesn't process the entire batch then we should give up the thread,
it makes no sense to stuff messages the callback has just refused back into the same callback
in the same thread.
- it is possible that new messages arrive while we are processing the first batch, but again
we should give up the thread before we process them - otherwise we can hold the thread for
an unbounded time if messages keep arriving while we are processing.

The whole idea of batch processing in this code was exactly to do a bounded amount of work
before giving up the thread, so the while loop was some sort of brain fart on my part.

> 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-svn-10.patch, QPID-6213_suggested_further_fix.patch, qpid-6213-broker-1.log, qpid-6213-broker.log,
qpid-6213-svn-01.patch, qpid-6213-svn-14.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

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

View raw message