[infinispan-issues] [JBoss JIRA] (ISPN-2058) Tree node move concurrency test broken

Adrian Nistor (JIRA) jira-events at lists.jboss.org
Tue Jun 12 06:39:04 EDT 2012


    [ https://issues.jboss.org/browse/ISPN-2058?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12700713#comment-12700713 ] 

Adrian Nistor commented on ISPN-2058:
-------------------------------------

The failing test was not using write skew check so it could not work anyway.

Also, the method TreeCacheImpl.move needs to read the parent and check if its 'structure' map contains the child that is being moved. This ensures the write skew check is properly detected if another TX manages to remove/move the same child concurrently.

Another problem is TreeCacheImpl.move executes a batch (create child in new location, delete child from old location) but it always commits the batch regardless of exceptions thrown from the operations inside the batch. This can also lead to duplicated nodes if the creation succeeds but the delete fails because the child was already moved/removed by another TX. A new method AutoBatchSupport.failAtomic() was added to support rollback.
                
> Tree node move concurrency test broken
> --------------------------------------
>
>                 Key: ISPN-2058
>                 URL: https://issues.jboss.org/browse/ISPN-2058
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Tree API
>    Affects Versions: 5.1.4.FINAL, 5.1.5.CR1
>            Reporter: Galder Zamarreño
>            Assignee: Adrian Nistor
>             Fix For: 5.2.0.FINAL
>
>         Attachments: treemove_infinispan.log
>
>
> NodeMoveAPITest.testConcurrency() is broken, see attached log. 
> To summarise, when the concurrent moves begin, two threads are allowed to move, '/a/x' to '/d' and '/b'.
> The result is that 'x' appears under both '/b' and 'd' in the end.
> This test has been failing as early as https://infinispan.ci.cloudbees.com/job/Infinispan-5.1.x-JDK6-tcp/org.infinispan$infinispan-tree/142/testReport/junit/org.infinispan.api.tree/NodeMoveAPITest/testConcurrency/ but could have been failing from an earlier stage.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       



More information about the infinispan-issues mailing list