You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "jiraposter@reviews.apache.org (Commented) (JIRA)" <ji...@apache.org> on 2012/03/15 14:23:39 UTC

[jira] [Commented] (QPID-3899) Grouped messages with expired TTL will cause the broker to crash.

    [ https://issues.apache.org/jira/browse/QPID-3899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13230160#comment-13230160 ] 

jiraposter@reviews.apache.org commented on QPID-3899:
-----------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4362/
-----------------------------------------------------------

Review request for qpid and Gordon Sim.


Summary
-------

The current implementation of message groups incorrectly assumed that a message being dequeued had previously been acquired.  In the case of TTL expiration, this is not the case - the expired message is not acquired, it is simply dequeued.

This fix adds a flag that tracks the acquired state of each message in the group.  When a message is dequeued, the total acquired count for the group is decremented ONLY IF the message being dequeued has its acquired flag set.


This addresses bug qpid-3899.
    https://issues.apache.org/jira/browse/qpid-3899


Diffs
-----

  /trunk/qpid/cpp/src/qpid/broker/MessageGroupManager.h 1300156 
  /trunk/qpid/cpp/src/qpid/broker/MessageGroupManager.cpp 1300156 
  /trunk/qpid/tests/src/py/qpid_tests/broker_0_10/msg_groups.py 1300156 

Diff: https://reviews.apache.org/r/4362/diff


Testing
-------

unit tests, + new testcase.


Thanks,

Kenneth


                
> Grouped messages with expired TTL will cause the broker to crash.
> -----------------------------------------------------------------
>
>                 Key: QPID-3899
>                 URL: https://issues.apache.org/jira/browse/QPID-3899
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.16
>            Reporter: Ken Giusti
>            Assignee: Ken Giusti
>            Priority: Blocker
>             Fix For: 0.16
>
>
> If a message on a grouped message queue has an expired TTL, the broker will crash when de-queuing it.
> lt-qpidd: ../../../qpid/cpp/src/qpid/broker/MessageGroupManager.cpp:156: virtual void qpid::broker::MessageGroupManager::dequeued(const qpid::broker::QueuedMessage&): Assertion `state.acquired != 0' failed.
> Aborted (core dumped)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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