Bug 451432
Summary: | jexception 0x0b01 txn_map::set_aio_compl() threw JERR_MAP_NOTFOUND: Key not found in map | ||
---|---|---|---|
Product: | Red Hat Enterprise MRG | Reporter: | Gordon Sim <gsim> |
Component: | qpid-cpp | Assignee: | messaging-bugs <messaging-bugs> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Kim van der Riet <kim.vdriet> |
Severity: | high | Docs Contact: | |
Priority: | urgent | ||
Version: | beta | ||
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2008-12-02 16:06:33 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Gordon Sim
2008-06-14 13:09:37 UTC
Same test on another occasion gave: Unexpected I/O response (RHM_IORES_BUSY) on queue tx-test-3". (JournalImpl.cpp:484) The following is some output from the broker log during the run of the initial txtest (with args as above) before it was killed: 2008-jun-14 12:30:03 error Failed to prepare: Queue tx-test-2: store() failed: jexception 0x0b01 txn_map::set_aio_compl() threw JERR_MAP_NOTFOUND: Key not found in map. (xid=rhm-tid0x2aaab822f6b0 rid=0x151f019) (BdbMessageStore.cpp:1194) 2008-jun-14 12:30:03 error Journal "tx-test-2": Unexpected I/O response (RHM_IORES_BUSY) on queue tx-test-2". 2008-jun-14 12:30:03 error Commit failed with exception: Unexpected I/O response (RHM_IORES_BUSY) on queue tx-test-2". (JournalImpl.cpp:484) 2008-jun-14 12:30:03 error Journal "tx-test-2": Unexpected I/O response (RHM_IORES_BUSY) on queue tx-test-2". 2008-jun-14 12:30:03 error Failed to prepare: Unexpected I/O response (RHM_IORES_BUSY) on queue tx-test-2". (JournalImpl.cpp:484) 2008-jun-14 12:30:03 error Journal "tx-test-2": Unexpected I/O response (RHM_IORES_BUSY) on queue tx-test-2". 2008-jun-14 12:30:03 error Commit failed with exception: Unexpected I/O response (RHM_IORES_BUSY) on queue tx-test-2". (JournalImpl.cpp:484) It looks like the root cause of the problem is that when processing a completion event, the record of the operation can no longer be found in the txn_map and so cannot be marked complete (which causes the follow on errors). The primary cause of this bug was the failure to first synchronize the store before writing the transactional commit record. The code was adjusted to first sync, then commit, then flush and wait for the commit to return. A secondary bug was also uncovered by this fix - recovered transactions were not placed in the transaction map with their enqueue-complete flags set. This prevented certain transaction/recover tests from passing. This was also fixed. The sleep times in the AIO wait loop were shortened from 10ms to 1ms, which improved performance. r.2153 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 |