Bug 448935 - Lazy-load with journal will fail for redelivered messages
Summary: Lazy-load with journal will fail for redelivered messages
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp
Version: beta
Hardware: All
OS: Linux
urgent
urgent
Target Milestone: ---
: ---
Assignee: Kim van der Riet
QA Contact: Kim van der Riet
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-05-29 15:31 UTC by Gordon Sim
Modified: 2009-05-07 20:09 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-12-02 16:06:14 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Gordon Sim 2008-05-29 15:31:18 UTC
Lazy loading in async store mode uses the journals read function. This doesn't
allow for re-reading of a message once read. If a lazy-loaded message is not
acked by a client and is consequently resent to another client it will currently
attempt to re-load the data and if the journal is in use this will fail.

(Need a test case to accompany this, but raising the BZ early to ensure we don't
lose sight of it)/

Comment 1 Kim van der Riet 2008-06-05 22:10:44 UTC
Found some logic errors that allowed the journal to lock up in an infinite loop
when trying to lazy-load from a journal that has nothing more to read. Fixed
re-load problem by tracking the rids of read records and invalidating the read
manager when the requested rid is lower than the last read rid. This is a simple
but klunky solution; fortunately this is not a common scenario.

Python tests to test this and other flow-to-disk scenarios have also been added.

Comment 2 Mike Bonnet 2008-06-20 03:52:49 UTC
qpidc-0.2.667603-1.el5, qpidc-perftest-0.2.667603-1.el5, qpidd-0.2.667603-1.el5, and rhm-0.2.2153-1.el5 have been pushed to the staging repo for testing


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