[ 
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
(v6.3.4#6332)

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

Reply via email to