Bug 743097 - msgGroups: messages with group header not set or equal to empty string shall be assigned to default group
Summary: msgGroups: messages with group header not set or equal to empty string shall ...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp
Version: Development
Hardware: Unspecified
OS: Unspecified
medium
unspecified
Target Milestone: 2.1.2
: ---
Assignee: Ken Giusti
QA Contact: Petr Matousek
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-10-03 20:13 UTC by Petr Matousek
Modified: 2012-12-07 17:45 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
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.
Clone Of:
Environment:
Last Closed:
Target Upstream Version:


Attachments (Terms of Use)
test reproducer (1.72 KB, text/python)
2011-10-03 20:15 UTC, Petr Matousek
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 734115 1 None None None 2021-01-20 06:05:38 UTC

Internal Links: 734115

Description Petr Matousek 2011-10-03 20:13:55 UTC
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.

Comment 1 Petr Matousek 2011-10-03 20:15:46 UTC
Created attachment 526122 [details]
test reproducer

Comment 2 Ken Giusti 2011-11-02 16:47:57 UTC
Upstream JIRA:
https://issues.apache.org/jira/browse/QPID-3577

Fix submitted upstream, svn revision:
http://svn.apache.org/viewvc?view=revision&revision=1196682

Comment 3 Petr Matousek 2012-01-13 18:05:55 UTC
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

Comment 4 Ken Giusti 2012-03-07 21:08:34 UTC
    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.


Note You need to log in before you can comment on or make changes to this bug.