[
https://issues.apache.org/jira/browse/BOOKKEEPER-112?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13220843#comment-13220843
]
[email protected] commented on BOOKKEEPER-112:
----------------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/3472/
-----------------------------------------------------------
(Updated 2012-03-02 11:27:34.221927)
Review request for bookkeeper.
Changes
-------
new patch remove readForward flag from constructor. and also remove
ScheduledExecutorService, since we don't need to care about long-chain, since
the callback will be triggered in bookie client's netty thread not in same
thread.
Summary
-------
Bookie recovery updates the ledger metadata in zookeeper. LedgerHandle will not
get notified of this update, so it will try to write out its own ledger
metadata, only to fail with KeeperException.BadVersion. This effectively fences
all write operations on the LedgerHandle (close and addEntry). close will fail
for obvious reasons. addEntry will fail once it gets to the failed bookie in
the schedule, tries to write, fails, selects a new bookie and tries to update
ledger metadata.
Update Line 605, testSyncBookieRecoveryToRandomBookiesCheckForDupes(), when done
Also, uncomment addEntry in
TestFencing#testFencingInteractionWithBookieRecovery()
This addresses bug BOOKKEEPER-112.
https://issues.apache.org/jira/browse/BOOKKEEPER-112
Diffs (updated)
-----
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java
37623dc
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java
f71e53f
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java
b403aa1
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerRecoveryOp.java
c67a79c
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/PendingReadOp.java
29070eb
bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java
99258ac
bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java
015e4e4
bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BaseTestCase.java
dada67a
Diff: https://reviews.apache.org/r/3472/diff
Testing
-------
Thanks,
Sijie
> Bookie Recovery on an open ledger will cause LedgerHandle#close on that
> ledger to fail
> --------------------------------------------------------------------------------------
>
> Key: BOOKKEEPER-112
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-112
> Project: Bookkeeper
> Issue Type: Bug
> Reporter: Flavio Junqueira
> Assignee: Sijie Guo
> Fix For: 4.1.0
>
> Attachments: BK-112.patch, BOOKKEEPER-112.patch,
> BOOKKEEPER-112.patch_v2, BOOKKEEPER-112.patch_v3, BOOKKEEPER-112.patch_v4,
> BOOKKEEPER-112.patch_v5
>
>
> Bookie recovery updates the ledger metadata in zookeeper. LedgerHandle will
> not get notified of this update, so it will try to write out its own ledger
> metadata, only to fail with KeeperException.BadVersion. This effectively
> fences all write operations on the LedgerHandle (close and addEntry). close
> will fail for obvious reasons. addEntry will fail once it gets to the failed
> bookie in the schedule, tries to write, fails, selects a new bookie and tries
> to update ledger metadata.
> Update Line 605, testSyncBookieRecoveryToRandomBookiesCheckForDupes(), when
> done
> Also, uncomment addEntry in
> TestFencing#testFencingInteractionWithBookieRecovery()
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira