[ https://issues.apache.org/jira/browse/ZOOKEEPER-387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12704056#action_12704056 ]
Flavio Paiva Junqueira commented on ZOOKEEPER-387: -------------------------------------------------- QA says that this patch fails core tests. The patch doesn't even modify core ZooKeeper, though. From the output, it looks like the C tests are still failing, and it can't be caused by this patch. > closeLedger shouldn't shut down all QuorumEngines > ------------------------------------------------- > > Key: ZOOKEEPER-387 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-387 > Project: Zookeeper > Issue Type: Bug > Components: contrib-bookkeeper > Reporter: Flavio Paiva Junqueira > Assignee: Flavio Paiva Junqueira > Attachments: ZOOKEEPER-387.patch > > > We had initially assumed one ledger open at a time, and LedgerRecoverMonitor > reads and closes a ledger without instantiating a QuorumEngine. Consequently, > when closing a ledger, we have to shut down a QuorumEngine only if there is > one. A poor way of implementing it is by having a for loop that iterates over > all available QuorumEngines and shut them down. Given the assumptions of one > ledger at a time and no QuorumEngine for LedgerRecoveryMonitor, this > implementation works. However, as we move to a more flexible model in which > multiple ledgers can be open and closed at arbitrary times, the for loop > choice no longer works. > The attached patch fixes this problem by just shutting down the QuorumEngine > instance corresponding to the ledger being closed, and it checks if a > QuorumEngine exists before submitting a STOP operation. The patch also > includes a test that opens four ledger, and then sequentially writes to the > each ledger and closes it. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.