[ 
https://issues.apache.org/jira/browse/BOOKKEEPER-667?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13731693#comment-13731693
 ] 

Sijie Guo edited comment on BOOKKEEPER-667 at 8/7/13 6:29 AM:
--------------------------------------------------------------

attach a test to fix this issue: when new metadata has one less ensemble that 
current metadata (the case the recovery tool modified ledger metadata at the 
same time that ensemble change kicks in). and we should use the ensembles in 
new metadata when resolving conflicts since it contains recovered bookie info.

the patch is just a draft to show how to fix this issue correctly. I would 
improve it with more test cases (not just the test case that Vinay attached) 
later.
                
      was (Author: hustlmsp):
    attach a test to fix this issue: when new metadata has one less ensemble 
that current metadata (the case the recovery tool modified ledger metadata at 
the same time that ensemble change kicks in). and we should use the ensembles 
in new metadata when resolving conflicts since it contains recovered bookie 
info.

there is no test right now, since I think we need to more test cases to test 
the issue here. I would attach the test cases later.
                  
> Client write will fail with BadMetadataVersion in case of multiple Bookie 
> failures with AutoRecovery enabled
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: BOOKKEEPER-667
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-667
>             Project: Bookkeeper
>          Issue Type: Bug
>          Components: bookkeeper-auto-recovery
>    Affects Versions: 4.2.1, 4.3.0
>            Reporter: Vinay
>            Assignee: Sijie Guo
>            Priority: Blocker
>             Fix For: 4.2.2, 4.3.0
>
>         Attachments: BOOKKEEPER-667.diff, BOOKKEEPER-667.patch, 
> MetatadaConflictTest.patch
>
>
> Scenario:
> ------------
> 1. Start cluster of enough bookies, say 4, with autorecovery
> 2. Create ledger and write some entries.
> 3. Restart one of the bookies
> 4. again, write some more entries
> 5. wait for some time.. till autorecovery completes replication of first 
> segment
> 6. Now restart one of the bookie of latest ensemble
> 7. continue to write.
> Here second ensemble change will fail, throwing BadMetadataVersion

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to