Red Hat Bugzilla – Bug 448935
Lazy-load with journal will fail for redelivered messages
Last modified: 2009-05-07 16:09:42 EDT
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)/
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.
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