jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jukka Zitting (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (JCR-2272) Errors during concurrent session import of nodes with same UUIDs
Date Tue, 20 Sep 2011 13:24:09 GMT

    [ https://issues.apache.org/jira/browse/JCR-2272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13108699#comment-13108699
] 

Jukka Zitting commented on JCR-2272:
------------------------------------

The latest patch looks like a reasonable step forward. I'll try to review the attached traces
to better understand also the deeper interactions here. Meanwhile, some comments:

* The SQLIntegrityConstraintViolationException class is only available since Java 6. As an
alternative we could try to interpret the value returned by the SQLException.getSQLState()
method.

* I couldn't get the ConcurrentImportTest to fail with the latest patch despite numerous attempts,
but that might be just due to my pretty fast server and the relatively low level of concurrency
in the test case. Or then everything is just fine. :-)

* What I do see instead is plenty of warnings like the following. I didn't check yet if this
is because of the changes in the patch or something we'd in any case need to fix.

15:01:43.975 WARN  [Executor 0] ItemSaveOperation.java:885  /testroot/9afd33fd-b66d-4c8f-9d02-0fe16245d0bc/jcr:mixinTypes:
failed to restore transient state
javax.jcr.RepositoryException: org.apache.jackrabbit.core.state.ItemStateException: there's
already a property state instance with id 9afd33fd-b66d-4c8f-9d02-0fe16245d0bc/{http://www.jcp.org/jcr/1.0}mixinTypes
        at org.apache.jackrabbit.core.PropertyImpl.restoreTransient(PropertyImpl.java:197)
~[classes/:na]
        at org.apache.jackrabbit.core.ItemSaveOperation.restoreTransientItems(ItemSaveOperation.java:879)
[classes/:na]
        at org.apache.jackrabbit.core.ItemSaveOperation.perform(ItemSaveOperation.java:277)
[classes/:na]
        at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:200)
[classes/:na]
        at org.apache.jackrabbit.core.ItemImpl.perform(ItemImpl.java:91) [classes/:na]
        at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:329) [classes/:na]
        at org.apache.jackrabbit.core.session.SessionSaveOperation.perform(SessionSaveOperation.java:64)
[classes/:na]
        at org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:200)
[classes/:na]
        at org.apache.jackrabbit.core.SessionImpl.perform(SessionImpl.java:360) [classes/:na]
        at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:809) [classes/:na]
        at org.apache.jackrabbit.core.ConcurrentImportTest$1.execute(ConcurrentImportTest.java:95)
[test-classes/:na]
        at org.apache.jackrabbit.core.AbstractConcurrencyTest$Executor.run(AbstractConcurrencyTest.java:209)
[test-classes/:na]
        at java.lang.Thread.run(Thread.java:662) [na:1.6.0_23]
Caused by: org.apache.jackrabbit.core.state.ItemStateException: there's already a property
state instance with id 9afd33fd-b66d-4c8f-9d02-0fe16245d0bc/{http://www.jcp.org/jcr/1.0}mixinTypes
        at org.apache.jackrabbit.core.state.SessionItemStateManager.createTransientPropertyState(SessionItemStateManager.java:631)
~[classes/:na]
        at org.apache.jackrabbit.core.PropertyImpl.restoreTransient(PropertyImpl.java:191)
~[classes/:na]
        ... 12 common frames omitted


> Errors during concurrent session import of nodes with same UUIDs
> ----------------------------------------------------------------
>
>                 Key: JCR-2272
>                 URL: https://issues.apache.org/jira/browse/JCR-2272
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core, xml
>    Affects Versions: 2.0-alpha8
>            Reporter: Tobias Bocanegra
>         Attachments: 2272.patch, JCR-2272.patch, JCR-2272_NPE.patch, JCR-2272__Errors_during_concurrent_session_import_of_nodes_with_same_UUIDs.patch,
JCR-2272_revised.patch, JCR2272.Sep12.patch, JCR2272.Sep13.patch, JCR2272.Sep13b.patch, JCR2272.Sep15.patch,
JCR2272.Sep6.patch, t4.html, t4.txt, t5.txt
>
>
> 21.08.2009 16:22:14 *ERROR* [Executor 0] ConnectionRecoveryManager: could not execute
statement, reason: The statement was aborted because it would have caused a duplicate key
value in a unique or primary key constraint or unique index identified by 'SQL090821042140130'
defined on 'DEFAULT_BUNDLE'., state/code: 23505/20000 (ConnectionRecoveryManager.java, line
453)
> 21.08.2009 16:22:14 *ERROR* [Executor 0] BundleDbPersistenceManager: failed to write
bundle: 6c292772-349e-42b3-8255-7729615c67de (BundleDbPersistenceManager.java, line 1212)
> ERROR 23505: The statement was aborted because it would have caused a duplicate key value
in a unique or primary key constraint or unique index identified by 'SQL090821042140130' defined
on 'DEFAULT_BUNDLE'.
> 	at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.IndexChanger.insertAndCheckDups(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.IndexChanger.doInsert(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.IndexChanger.insert(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.IndexSetChanger.insert(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknown Source)
> 	at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown Source)
> 	at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(Unknown Source)
> 	at org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.executeStmtInternal(ConnectionRecoveryManager.java:371)
> 	at org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.executeStmtInternal(ConnectionRecoveryManager.java:298)
> 	at org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.executeStmt(ConnectionRecoveryManager.java:261)
> 	at org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryManager.executeStmt(ConnectionRecoveryManager.java:239)
> 	at org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.storeBundle(BundleDbPersistenceManager.java:1209)
> 	at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.putBundle(AbstractBundlePersistenceManager.java:709)
> 	at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.storeInternal(AbstractBundlePersistenceManager.java:651)
> 	at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.store(AbstractBundlePersistenceManager.java:527)
> 	at org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.store(BundleDbPersistenceManager.java:563)
> 	at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:724)
> 	at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1101)
> 	at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:351)
> 	at org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:354)
> 	at org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:326)
> 	at org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:326)
> 	at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1098)
> 	at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:925)
> 	at org.apache.jackrabbit.core.ConcurrentImportTest$1.execute(ConcurrentImportTest.java:73)
> 	at org.apache.jackrabbit.core.AbstractConcurrencyTest$Executor.run(AbstractConcurrencyTest.java:209)
> 	at java.lang.Thread.run(Thread.java:637)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message