Hide Forgot
Description of problem: Messages with group header not set shall be treated the same way as messages with group header value of empty-string. Both shall be assigned to "default group". Please see additional info for details. Version-Release number of selected component (if applicable): qpidd (qpidc) version 0.13 snv branch QPID-3346 (revision 1177617) How reproducible: 100% Steps to Reproduce: 1. run the attached test reproducer Actual results: message with group header not set are assigned to different group than messages with group header value of empty string Expected results: both messages with group header not set and messages with empty string in group header are assigned to default group Additional info: According to https://docspace.corp.redhat.com/docs/DOC-69575, messages which does not contain the configured group header shall be handled the same way as messages with group header value of empty-string (if not overridden on broker start-up using default-msg-group property). The following example is in conflict with the above described behaviour: there are two consumers on already existing queue with qpid.group_header_key set, and the following messages queued: message1 (group header not set) message2 (group header not set) message3 (group header equal to empty string) a.) consumer1 is consuming the first available message, the message won't be acknowledged: message1 is received b.) then consumer2 is consuming all available messages: message3 is received The behaviour is wrong in step "b". No message shall be consumed by consumer2, messages shall belong to the same group, thus all the messages shall be blocked until the message consumed in step "a" will be acknowledged.
Created attachment 526122 [details] test reproducer
Upstream JIRA: https://issues.apache.org/jira/browse/QPID-3577 Fix submitted upstream, svn revision: http://svn.apache.org/viewvc?view=revision&revision=1196682
This issue has been fixed. Verified on RHEL5.7 and RHEL6.2, architectures: x86_64, i686 packages installed: qpid-cpp-mrg-0.14-3.el5 qpid-cpp-0.14-1.el6 -> VERIFIED
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Cause Sending a message with a group identifier fields set to the empty string (literally ""). Consequence The empty string group is considered its own group, separate from the default group, which should have been used. Fix The broker now checks for a null string in the group identifier field, and assigns the message to the default group. Result All messages that use a null string ("") as a message group identifier are assigned to the broker's default message group. This is the same group messages are assigned to if there is no message group identifier present in the message.