-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/21486/
-----------------------------------------------------------
Review request for qpid, Andrew Stitcher and Kim van der Riet.
Bugs: QPID-5767
https://issues.apache.org/jira/browse/QPID-5767
Repository: qpid
Description
-------
The patch improves getting EFP identity of a journal. Explanation of particular
changes:
1) In RecoveryManager::analyzeJournalFileHeaders, we should exclude from
journal files also those with missing/unknown EFP identity. That requires this
function to have EmptyFilePoolManager* parameter.
2) efpIdentity.pn_ = .. (and efpIdentity.ds_) moved to set it per latest
_properly_ read journal file. I.e. not one with corrupted / missing /
uninitialized header.
3) first "if (! *emptyFilePoolPtrPtr)" in RecoveryManager::analyzeJournals is
to fix the option all journal files are uninitialized. Then EFP=(0,0) i.e.
unknown. In that case, set it to the default. This requires the small
enhancement in EmptyFilePoolManager.h
4) Second "if (! *emptyFilePoolPtrPtr)" in RecoveryManager::analyzeJournals is
to ensure we work with really known EFP identity (or is the default EFP
identity everytime defined? If so, this can be ignored).
The original JIRA is fixed just by code changes 1)+2), as well as it would be
by 3)+4). Running few scenarios (like journal having one damaged and one
uninitialized file) resulted in these changes altogether.
Diffs
-----
/trunk/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePoolManager.h 1594860
/trunk/qpid/cpp/src/qpid/linearstore/journal/RecoveryManager.h 1594860
/trunk/qpid/cpp/src/qpid/linearstore/journal/RecoveryManager.cpp 1594860
Diff: https://reviews.apache.org/r/21486/diff/
Testing
-------
auto tests passed (more precisely, the two failing with patch - interlink_tests
and ha_tests - are failing also without the patch)
Thanks,
Pavel Moravec