Can you provide a repo for this? 

> However, if another client recovers the ledger, and sets the lastEntry to 20, 
> then we have a potential for a TOAB violation.

I don't fully understand this sentence here. 

from what I understand, when another client recovers the ledger, if it sees the 
ledger is closed, it does nothing; if the recovery starts before the first 
client updated the metadata, the second recovery will set the metadata to 
IN_RECOVERY, the first client will see metadata version and attempt to resolve 
the conflict. when resolving the conflicts, there should be one client 
successfully close the ledger and the other one fails. the current logic give 
up at closing when hitting metadata version conflicts, so there will not be any 
metadata overwritten. so I am not sure how this would happen in current code 
though.


regarding the state, we already have a state called IN_RECOVERY which is the 
"CLOSING" in some sense. Can't we reuse that?

[ Full content available at: https://github.com/apache/bookkeeper/issues/1712 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to