[
https://issues.jboss.org/browse/ISPN-2058?page=com.atlassian.jira.plugin....
]
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.inf...
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