jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Laurent Prevosto (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JCR-2679) Lock Problem when accessing JCR
Date Thu, 12 Aug 2010 16:19:19 GMT

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

Laurent Prevosto commented on JCR-2679:

For some reason, the problem now is much more frequent :-(

I understand this could be resource exhaustion but the Oracle DataSource allows 60 connections
and we hardly see more than 4 simultaneous used connections, except when JCR is stuck.  (Oracle
allows 250 sessions).

There is no lock ad the DataBase level.

We used to see the problem when some XA transaction would rollback but now a simple document
creation can raise it.

It is accompagnied by an Hiberbate error (which may or not be related) :

2010-08-12 13:19:25,828 INFO  [com.sfr.thd.sadirah.web.bean.document.DocumentJsfManager] start
creating doucment
2010-08-12 13:19:28,323 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] : Could
not synchronize database state with session
org.hibernate.TransientObjectException: object references an unsaved transient instance -
save the transient instance before flushing: com.sfr.thd.sadirah.entite.DocumentContainerImpl
        at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:219)
        at org.hibernate.type.EntityType.getIdentifier(EntityType.java:397)
        at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:78)
        at org.hibernate.persister.collection.AbstractCollectionPersister.writeElement(AbstractCollectionPersister.java:755)
        at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1143)
        at org.hibernate.action.CollectionRecreateAction.execute(CollectionRecreateAction.java:39)
        at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:171)
        at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
        at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
        at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
        at org.springframework.orm.hibernate3.SpringSessionSynchronization.beforeCommit(SpringSessionSynchronization.java:135)
        at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:72)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:905)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:715)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:701)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:321)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
        at $Proxy185.creer(Unknown Source)
        at com.sfr.thd.sadirah.web.bean.document.DocumentJsfManager.createDocument(DocumentJsfManager.java:179)

We're pulling our hair out.....

I can't figure out what we should monitor to finally get rid of that problem.

> Lock Problem when accessing JCR
> -------------------------------
>                 Key: JCR-2679
>                 URL: https://issues.apache.org/jira/browse/JCR-2679
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-jca, transactions
>    Affects Versions: 1.5.3, 1.6.2
>         Environment: JBOSS 4.2.3 on jre 1.5.0_15 with XA transactions and Oracle10g
>            Reporter: Laurent Prevosto
>         Attachments: repository-prod.xml, thread_dump.txt, workspace.xml
> Hi,
> We're using Jackrabbit 1.6.2 as an internal CMS in an application we developped.
> It runs in JBOSS 4.2.3 on jre 1.5.0_15 with XA transactions and Oracle10g
> We have about 15 users adding / deleting files in the repository.
> 30 others just do read only CMS access and other stuff.
> Things work fine except that sometimes, suddenly everything gets stuck and all we have
left is those kind of errors :
> [org.apache.jackrabbit.core.query.lucene.NodeIteratorImpl] : Exception retrieving Node
with UUID : XXXXXXX-XXX-etc: javax.jcr.ItemNotFoundException: XXXXXXX-XXX-etc
> All our JCR connections are now dead. If we restart JBOSS, things get back to normal,
until the next crash.
> It looks like the bug usually happens when this kind of sequence takes place (though
that may not be the only one) :
> XA transaction begins
> filenode1 gets deleted
> filenode2 gets deleted
> other oracle stuff takes place... and fails
> XA rollbacks.
> => JCR is dead.
> At that point, "touching" the datasource has it reinitialised by JBOSS but unfortunately
the lock is still there : JBOSS has to be restarted.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message