[
https://issues.apache.org/jira/browse/BOOKKEEPER-153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13186880#comment-13186880
]
Sijie Guo commented on BOOKKEEPER-153:
--------------------------------------
currently flow of creation is
1) create a zero-length bytes znode in zookeeper
2) allocate an ensemble to add it to ledger metadata, write it to the created
znode
3) return the created ledger handle
why not
1) allocate an ensemble first
2) create a znode with the initial metadata in zookeeper (this creation could
make adding metadata and creating znode in a same transaction)
for backward compatibility, there exists zero-length metadata before. we should
let regular operations (such as open / openNoRecovery ) can execute over such
ledgers.
> Ledger can't be opened or closed due to zero-length metadata
> ------------------------------------------------------------
>
> Key: BOOKKEEPER-153
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-153
> Project: Bookkeeper
> Issue Type: Bug
> Components: bookkeeper-client
> Affects Versions: 4.0.0
> Reporter: Sijie Guo
> Assignee: Sijie Guo
> Fix For: 4.1.0
>
>
> Currently creating ledger path and writing ledger metadata are not in a
> transaction. so if the bookkeeper client (hub server uses bookkeeper client)
> is crashed, we have a ledger existed in zookeeper with zero-length metadata.
> we can't open/close it.
> we should create the ledger path with initial metadata to avoid such case.
> besides that, we need to add code in openLedgerOp to handle zero-length
> metadata for backward compatibility.
--
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