Jonathan Robie (JIRA) wrote:
Messages get lost between credit allocation and
------------------------------------------------
Key: QPID-783
URL: https://issues.apache.org/jira/browse/QPID-783
Project: Qpid
Issue Type: Bug
Components: C++ Client, Java Client, Python Client, Ruby Client
Reporter: Jonathan Robie
As I understand it, a client should receive all messages sent after it
subscribes and allocates credit.
Currently, the C++ client sometimes loses messages sent between the time credit
is allocated and the time that dispatcher.listen() is called. I believe this is
wrong behavior. This bug has been observed in Listener.cpp for both fanout and
direct. We suspect this problem exists also in at least the Python client.
Correct behavior, as I understand it, is to queue all messages sent after
credit is allocated.
Jonathan
Jonathan,
I think the last thing you should do when setting up a subscription is
to set the credits. I noticed in the Python examples that the credits
are set before queue.listen is called. If you call queue.listen before
setting credits, you should never lose messages. I assume this is the
same for the C++ API.
-Ted