[ 
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

Reply via email to