jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Giota Karadimitriou (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JCR-371) ItemStateException on concurrently committing transactions of versioning operations
Date Tue, 04 Apr 2006 14:36:16 GMT
    [ http://issues.apache.org/jira/browse/JCR-371?page=comments#action_12373098 ] 

Giota Karadimitriou commented on JCR-371:
-----------------------------------------

Just to add my experience on this, in case it helps:
This issue occured when while trying to perform concurrent versioning operations
I did a remove version. I tracked down the problem and it seems that while trying to remove
version7 of a document which had the following hierarchy:

72d4c88e-5c86-40c8-bb98-1b9e32c1a421   //version 7 
|
|
e33688f2-d230-4957-8a51-22433333e440   //versionHistory
|
|
21e1bb18-5507-4cd9-9b91-1c25be0af0e4   //versionStorage
|
|
75e0f33e-a58c-492c-b932-e544415f86e1   //versionStorage
|
|
7b82e86f-c693-47cb-a898-82fb6d41bd29   //versionStorage
|
|
deadbeef-face-babe-cafe-babecafebabe


'deadbeef-face-babe-cafe-babecafebabe' *lost* '7b82e86f-c693-47cb-a898-82fb6d41bd29' (first
version storage).

This corrupted the document version graph and every create version or remove version operation
then seemed hopeless since the version graph was corrupted and resulted in path errors. I
saved the blob value of deadbeef-face-babe-cafe-babecafebabe from the database and checked
its children and 7b82e86f-c693-47cb-a898-82fb6d41bd29 was not among them.

The exception I first got :

Unable to resolve zombie path for item: 72d4c88e-5c86-40c8-bb98-1b9e32c1a421
org.apache.jackrabbit.core.state.ItemStateException: Unable to resolve zombie path for item:
72d4c88e-5c86-40c8-bb98-1b9e32c1a421
	at org.apache.jackrabbit.core.observation.EventStateCollection.getZombiePath(EventStateCollection.java:519)
	at org.apache.jackrabbit.core.observation.EventStateCollection.createEventStates(EventStateCollection.java:316)
	at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:535)
	at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:651)
	at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:150)
	at org.apache.jackrabbit.core.version.XAVersionManager.prepare(XAVersionManager.java:414)
	at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:128)
	at org.apache.jackrabbit.core.XASessionImpl.prepare(XASessionImpl.java:300)
	....
Caused by: javax.jcr.ItemNotFoundException: failed to build path of 7b82e86f-c693-47cb-a898-82fb6d41bd29:
deadbeef-face-babe-cafe-babecafebabe has no child entry for 7b82e86f-c693-47cb-a898-82fb6d41bd29
	at org.apache.jackrabbit.core.HierarchyManagerImpl.buildPath(HierarchyManagerImpl.java:327)
	at org.apache.jackrabbit.core.HierarchyManagerImpl.buildPath(HierarchyManagerImpl.java:316)
	at org.apache.jackrabbit.core.HierarchyManagerImpl.buildPath(HierarchyManagerImpl.java:316)
	at org.apache.jackrabbit.core.HierarchyManagerImpl.buildPath(HierarchyManagerImpl.java:316)
	at org.apache.jackrabbit.core.HierarchyManagerImpl.buildPath(HierarchyManagerImpl.java:316)
	at org.apache.jackrabbit.core.HierarchyManagerImpl.getPath(HierarchyManagerImpl.java:376)
	at org.apache.jackrabbit.core.observation.ChangeLogBasedHierarchyMgr.getZombiePath(ChangeLogBasedHierarchyMgr.java:84)
	at org.apache.jackrabbit.core.observation.EventStateCollection.getZombiePath(EventStateCollection.java:514)
	... 48 more
	 -----
I think at least in my case  the problem occurs in lines 156-167 of EventStateCollection because
it deletes old parent but then fails to build the zombie path which includes the old parent
(i use the source of jackrabbit 1.0rc1)

try {
                            oldParent = (NodeState) changes.get(oldParentId);
                        } catch (NoSuchItemStateException e) {
                            // old parent has been deleted, retrieve from
                            // shared item state manager
                            oldParent = (NodeState) provider.getItemState(oldParentId);
                        }

                        NodeTypeImpl oldParentNodeType = getNodeType(oldParent, session);
                        Set mixins = oldParent.getMixinTypeNames();
                        Path newPath = getPath(n.getNodeId(), hmgr);
                        Path oldPath = getZombiePath(n.getNodeId(), hmgr); //HERE

we use oracle application server, SimpleDBPersistenceManager and java version "1.4.2_03".
Also, jca is used to make jackrabbit a resource adapter.

 

> ItemStateException on concurrently committing transactions of versioning operations
> -----------------------------------------------------------------------------------
>
>          Key: JCR-371
>          URL: http://issues.apache.org/jira/browse/JCR-371
>      Project: Jackrabbit
>         Type: Bug

>   Components: versioning
>     Versions: 0.9
>  Environment: r388178
>     Reporter: Tobias Bocanegra
>     Assignee: Tobias Bocanegra
>      Fix For: 1.1

>
> see tests in JCR-335
> org.apache.jackrabbit.core.state.ItemStateException: Unable to resolve path for item:
69d80165-7ef5-4b6b-8aa9-be9c9be1f994
> 	at org.apache.jackrabbit.core.observation.EventStateCollection.getPath(EventStateCollection.java:525)
> 	at org.apache.jackrabbit.core.observation.EventStateCollection.createEventStates(EventStateCollection.java:377)
> 	at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:547)
> 	at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:668)
> 	at org.apache.jackrabbit.core.state.XAItemStateManager.prepare(XAItemStateManager.java:151)
> 	at org.apache.jackrabbit.core.version.XAVersionManager.prepare(XAVersionManager.java:431)
> 	at org.apache.jackrabbit.core.TransactionContext.prepare(TransactionContext.java:129)
> 	at org.apache.jackrabbit.core.XASessionImpl.prepare(XASessionImpl.java:309)
> 	at test.JCRUserTransaction.commit(JCRUserTransaction.java:74)
> 	at org.apache.jackrabbit.JRTestDeadlock.run(JRTestDeadlock.java:110)
> Caused by: javax.jcr.ItemNotFoundException: failed to build path of 69d80165-7ef5-4b6b-8aa9-be9c9be1f994:
a0ecd4b0-a442-4b1e-a2f6-51441f40d452 has no child entry for 69d80165-7ef5-4b6b-8aa9-be9c9be1f994
> 	at org.apache.jackrabbit.core.HierarchyManagerImpl.buildPath(HierarchyManagerImpl.java:308)
> 	at org.apache.jackrabbit.core.HierarchyManagerImpl.getPath(HierarchyManagerImpl.java:357)
> 	at org.apache.jackrabbit.core.observation.EventStateCollection.getPath(EventStateCollection.java:520)
> 	... 9 more

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message