Issue Details (XML | Word | Printable)

Key: JCR-443
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: Tobias Bocanegra
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Jackrabbit Content Repository

Deadlock when concurrently committing and reading versioning states

Created: 25/May/06 04:59 PM   Updated: 26/May/06 05:27 PM
Return to search
Component/s: None
Affects Version/s: 0.9, 1.0
Fix Version/s: 1.0.1

Time Tracking:
Not Specified

Environment: r4093490

Resolution Date: 25/May/06 05:08 PM


 Description  « Hide
there is a rear occation when one thread commits a transaction and another thread reads versioing related information, so that a deadlock can occurr.

example:

Thread1:
                        ut.begin();
                        session.getWorkspace().clone("default", "/content", "/content", true);
                        ut.commit();

Thread2:
                        VersionHistory vh = folder.getVersionHistory();
                        VersionIterator iter = vh.getAllVersions();
                        while (iter.hasNext()) {
                            Version v = iter.nextVersion();
                        }


to fix this issue we must ensure, that methods below the shareditemstatemgr do not call higher instances (like itemmgr) again.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #409351 Thu May 25 10:04:54 UTC 2006 tripod JCR-443 Deadlock when concurrently committing and reading versioning states
JCR-140 Versioning might no be thread safe
JCR-371 ItemStateException on concurrently committing transactions of versioning operations
Files Changed
MODIFY /jackrabbit/trunk/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImpl.java

Repository Revision Date User Message
ASF #409626 Fri May 26 10:26:01 UTC 2006 jukka 1.0: Merged revision 409351: JCR-140 JCR-371 JCR-443
Files Changed
MODIFY /jackrabbit/branches/1.0/jackrabbit/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImpl.java