[
https://issues.apache.org/jira/browse/BOOKKEEPER-455?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13490290#comment-13490290
]
Yixue (Andrew) Zhu commented on BOOKKEEPER-455:
-----------------------------------------------
Flavio,
First, I do not see the LAC field of add-entry-package is used by bookie. So, I
am not concerned about that.
The issue is that Bookie client API asyncAddEntry send entries asynchronously.
The bookie just persist what is requested by the client.
Suppose bookie persist entry 1, 3, 4, and entry 2 failed and being retried (TCP
handles IP layer package lost), and now bookie crash.
If the ledger is recovered, last-confirmed-entry-id can be set to 4. When
readers try to read 2, it will not get it.
The API is not used by production code (only by test).
The wrapper of the API, such as addEntry, wait until previous entry get
acknowledged by Bookie.
The bookie server could enforce this behavior by checking the
last-confirmed-entry-id in the add-entry-package, rejecting package where the
last-confirmed-entry-id != entry_id - 1. Thought?
I will change the issue to be minor/cleanup, since no production problem is
caused by it.
> Bookie recovery made assumption that entries are persisted in entry id order
> ----------------------------------------------------------------------------
>
> Key: BOOKKEEPER-455
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-455
> Project: Bookkeeper
> Issue Type: Bug
> Components: bookkeeper-server
> Affects Versions: 4.2.0
> Reporter: Yixue (Andrew) Zhu
>
> The entries sent by bookkeeper client can be out of order (due to network).
> The client uses queue to track last-confirmed-entry-id correctly.
> The bookie server will happily persist the entries out of order, i.e. gaps
> are possible. If bookie crash, the recovery can cause last-confirmed-entry-id
> to be set to the last-entry persisted by bookie. The gap is not tracked nor
> detected at server side.
>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira