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

Reply via email to