[
https://issues.apache.org/jira/browse/BOOKKEEPER-649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ivan Kelly updated BOOKKEEPER-649:
----------------------------------
Attachment: 0001-BOOKKEEPER-649-Race-condition-in-sync-ZKUtils.create.patch
While looking to see what was causing the failure, I saw we have 2 versions of
createFullPathOptimistic. The sync version, which this patch aims to fix is
very buggy (for example, it reuses the createMode for the parent, which is
plain wrong). The async version looks correct. I've replaced the sync version,
with a version that just calls the async version and waits.
> Race condition in sync ZKUtils.createFullPathOptimistic()
> ---------------------------------------------------------
>
> Key: BOOKKEEPER-649
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-649
> Project: Bookkeeper
> Issue Type: Bug
> Reporter: Matteo Merli
> Assignee: Matteo Merli
> Priority: Trivial
> Fix For: 4.2.2, 4.3.0
>
> Attachments:
> 0001-BOOKKEEPER-649-Race-condition-in-sync-ZKUtils.create.patch,
> 0001-BOOKKEEPER-649-Race-condition-in-sync-ZKUtils.create.patch,
> 0002-BOOKKEEPER-649.patch, 0002-BOOKKEEPER-649.patch,
> TEST-org.apache.bookkeeper.replication.TestLedgerUnderreplicationManager.xml
>
>
> If multiple threads are calling createFullPathOptimistic() there will be race
> conditions on creating the intermediate nodes. If the intermediate nodes have
> been created since we last check, we can just ignore the exception and
> continue creating the child nodes.
--
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