Aniruddha created BOOKKEEPER-400: ------------------------------------ Summary: Ledger entry not found in any of the bookies in the ensemble responsible for that entry. Key: BOOKKEEPER-400 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-400 Project: Bookkeeper Issue Type: Bug Components: bookkeeper-client Reporter: Aniruddha Attachments: clean.log.gz
Detailed discussion at http://mail-archives.apache.org/mod_mbox/zookeeper-bookkeeper-dev/201209.mbox/%3cCAOLhyDQzrmeOHmTxzPikeAqJ7pZUn0=vHfd=gc1srmtuye5...@mail.gmail.com%3e We had an internal discussion about this. From BOOKKEEPER-337, it seems that handleBookieFailure could be invoked in parallel by a thread other the one that calls LedgerHandle#sendAddSuccessCallbacks. The values updated by handleBookieFailure might not be visible to the thread running sendAddSuccessCallbacks because the fields are not volatile and this might have caused our bad state. BK-337 synchronizes access to metadata.addEnsemble() and we believe this would make this scenario very improbable. A long term fix might be to make LedgerMetadata immutable since it is rarely updated. -- 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