[ https://issues.apache.org/jira/browse/QPID-783?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12567621#action_12567621 ]
Gordon Sim commented on QPID-783: --------------------------------- In the c++ client, the Dispatcher class is a utility that pulls incoming messages off a session queue and pushes them to regstered listeners. If no listeners are set this is currently unsafe. There is already the facility to set a default listener (used for destinations without a specific listener registered); I have checked in a change (r620479) that will check a valid listener exists and log an error if not which in my view solves the root problem here (apart from clearer documentation perhaps). Credit allocation is really a side issue. The crucial point is to ensure that relevant listeners are registered either before the dispatch thread starts running or before the server can send messages for the destinations in question. The clients in different languages all do different things with regard to message dispatching so this specfic inconsistency is the tip of the iceberg. > 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 -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.