summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKim van der Riet <kpvdr@apache.org>2014-01-12 22:41:32 +0000
committerKim van der Riet <kpvdr@apache.org>2014-01-12 22:41:32 +0000
commit9759e36f8c986497f5a5b27cab983128d00c3571 (patch)
tree04d20e13805ed59aa7d0d375b938843e8740b21c
parent90bf5674a9f421add2aa8f9d22512951de4f803c (diff)
downloadqpid-python-9759e36f8c986497f5a5b27cab983128d00c3571.tar.gz
QPID-5473: Recovery where last record in file is truncated (ie spans files), but following file is uninitialized causes crash
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1557620 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/linearstore/ISSUES2
-rw-r--r--qpid/cpp/src/qpid/linearstore/journal/RecoveryManager.cpp3
2 files changed, 3 insertions, 2 deletions
diff --git a/qpid/cpp/src/qpid/linearstore/ISSUES b/qpid/cpp/src/qpid/linearstore/ISSUES
index 595730135d..412db073df 100644
--- a/qpid/cpp/src/qpid/linearstore/ISSUES
+++ b/qpid/cpp/src/qpid/linearstore/ISSUES
@@ -61,6 +61,8 @@ Current bugs and performance issues:
7. BZ 1039525 - Crash during recovery - journal::jexception - JERR_JREC_BADRECTAIL
8. (FIXED) QPID-5442 (BZ 1039949) - DTX test failure - missing XIDs
9. (FIXED) QPID-5460 (BZ 1051097) - Transactional messages lost during recovery
+10. QPID-5464 - Incompletely created journal files accumulate in EFP
+11. QPID-5473 (BZ 1051924) - Recovery where last record in file is truncated (ie spans files), but following file is uninitialized causes crash
Code tidy-up
------------
diff --git a/qpid/cpp/src/qpid/linearstore/journal/RecoveryManager.cpp b/qpid/cpp/src/qpid/linearstore/journal/RecoveryManager.cpp
index 67ad8a04a0..e27a239a18 100644
--- a/qpid/cpp/src/qpid/linearstore/journal/RecoveryManager.cpp
+++ b/qpid/cpp/src/qpid/linearstore/journal/RecoveryManager.cpp
@@ -456,7 +456,7 @@ void RecoveryManager::checkJournalAlignment(const std::streampos recordPosition)
bool RecoveryManager::decodeRecord(jrec& record,
std::size_t& cumulativeSizeRead,
::rec_hdr_t& headerRecord,
- std::streampos& fileOffset)
+ std::streampos& fileOffset)
{
std::streampos start_file_offs = fileOffset;
@@ -478,7 +478,6 @@ bool RecoveryManager::decodeRecord(jrec& record,
}
if (!done && needNextFile()) {
if (!getNextFile(false)) {
- checkJournalAlignment(start_file_offs);
return false;
}
}