[
https://issues.apache.org/jira/browse/BOOKKEEPER-153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13186882#comment-13186882
]
Flavio Junqueira commented on BOOKKEEPER-153:
---------------------------------------------
I think we have done it for simplicity, since we rely upon writeLedgerConfig to
write ledger metadata, and writeLedgerConfig only invokes setData. I agree that
it has the issue you're raising, though.
If we keep relying upon writeLedgerConfig for writing the ledger metadata, then
we will have a separation between creating it initially and writing the
metadata (non-atomic). To fix the problem you're raising, it sounds like we
have to either modify writeLedgerConfig or have a different code path for the
initial write.
> 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