-----------------------------------------------------------
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

Reply via email to