With Xid_v2 applied It's still hitting the error condition in 
DefaultISMLocking:136. Concurent threads are now deadlocking in 
DefaultISMLocking:67.

I've attached a screenshot detailing state when the initial error occurs.
> -----Ursprüngliche Nachricht-----
> Von: Claus Köll (JIRA) [mailto:j...@apache.org] 
> Gesendet: Donnerstag, 11. März 2010 16:13
> An: dev@jackrabbit.apache.org
> Betreff: [jira] Updated: (JCR-2554) Deadlock inside XASession 
> on Weblogic
> 
> 
>      [ 
> https://issues.apache.org/jira/browse/JCR-2554?page=com.atlass
> ian.jira.plugin.system.issuetabpanels:all-tabpanel ]
> 
> Claus Köll updated JCR-2554:
> ----------------------------
> 
>     Attachment: Xid_v2.patch
> 
> Now at first the Xid's will be checked and then the default 
> thread bound logic will work if we are not in a XAEnvironment.
> 
> > Deadlock inside XASession on Weblogic
> > -------------------------------------
> >
> >                 Key: JCR-2554
> >                 URL: https://issues.apache.org/jira/browse/JCR-2554
> >             Project: Jackrabbit Content Repository
> >          Issue Type: Bug
> >          Components: jackrabbit-core
> >    Affects Versions: 1.6.1, 2.0.0
> >         Environment: Weblogic 9.2
> >            Reporter: Robert Sauer
> >            Assignee: Claus Köll
> >            Priority: Critical
> >         Attachments: ConcurrentReaders.java, 
> > jr-core-xid-aware-ism-locking1.patch, Xid.patch, Xid_v2.patch
> >
> >
> > In one of our client deployments on WebLogic 9.2 we 
> observed JackRabbit sessions going stale in a load test. This 
> was observed against release 1.6.1 (to which we migrated due 
> to concurrency related issues JCR-2081 and JCR-2237). Same 
> effect with 2.0.0.
> >  
> > I could finally reproduce this issue locally. And it seems 
> to boil down to WLS invoking the sequence of <prepare> ... 
> <release> ... <commit> on one XA session from multiple 
> threads, as it seems breaking assumptions of the thread-bound 
> java.util.concurrent-RWLock based DefaultISMLocking class.
> > Effectively the setActiveXid(..) method on 
> DefaultISMLocking$RWLock fails as the old active XID was not 
> yet cleared. With the result of more and more sessions 
> deadlocking in below's invocation stack.
> > {code}
> > "[ACTIVE] ExecuteThread: '27' for queue: 'weblogic.kernel.Default 
> > (self-tuning)'" daemon prio=1 tid=0x33fc3ec0 nid=0x2324 in 
> > Object.wait() [0x2156a000..0x2156beb0] at 
> java.lang.Object.wait(Native 
> > Method) - waiting on <0x68a54698> (a 
> > 
> EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$WriterL
> > ock) at java.lang.Object.wait(Object.java:474) at 
> > 
> EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$WriterL
> > ock.acquire(Unknown Source) - locked <0x68a54698> (a 
> > 
> EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$WriterL
> > ock) at 
> > 
> org.apache.jackrabbit.core.state.DefaultISMLocking$1.<init>(DefaultISM
> > Locking.java:64) at 
> > 
> org.apache.jackrabbit.core.state.DefaultISMLocking.acquireWriteLock(De
> > faultISMLocking.java:61) at 
> > 
> org.apache.jackrabbit.core.version.AbstractVersionManager.acquireWrite
> > Lock(AbstractVersionManager.java:146) at 
> > 
> org.apache.jackrabbit.core.version.XAVersionManager$1.prepare(XAVersio
> > nManager.java:562) at 
> > 
> org.apache.jackrabbit.core.TransactionContext.prepare(TransactionConte
> > xt.java:154) - locked <0x6dc2ad88> (a 
> > org.apache.jackrabbit.core.TransactionContext) at 
> > 
> org.apache.jackrabbit.core.XASessionImpl.prepare(XASessionImpl.java:33
> > 1) at 
> > 
> org.apache.jackrabbit.jca.TransactionBoundXAResource.prepare(Transacti
> > onBoundXAResource.java:68) at 
> > 
> weblogic.connector.security.layer.AdapterLayer.prepare(AdapterLayer.ja
> > va:397) at 
> > 
> weblogic.connector.transaction.outbound.XAWrapper.prepare(XAWrapper.ja
> > va:297) at 
> > 
> weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerRes
> > ourceInfo.java:1276) at 
> > 
> weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerRes
> > ourceInfo.java:499) at 
> > 
> weblogic.transaction.internal.ServerSCInfo$1.execute(ServerSCInfo.java
> > :335) at weblogic.kernel.Kernel.executeIfIdle(Kernel.java:243) at 
> > 
> weblogic.transaction.internal.ServerSCInfo.startPrepare(ServerSCInfo.j
> > ava:326) at 
> > 
> weblogic.transaction.internal.ServerTransactionImpl.localPrepare(Serve
> > rTransactionImpl.java:2516) at 
> > 
> weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(Serv
> > erTransactionImpl.java:2211) at 
> > 
> weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Ser
> > verTransactionImpl.java:266) at 
> > 
> weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTrans
> > actionImpl.java:227) at 
> > 
> weblogic.transaction.internal.TransactionManagerImpl.commit(Transactio
> > nManagerImpl.java:283) at 
> > 
> org.springframework.transaction.jta.JtaTransactionManager.doCommit(Jta
> > TransactionManager.java:1028) at 
> > 
> org.springframework.transaction.support.AbstractPlatformTransactionMan
> > ager.processCommit(AbstractPlatformTransactionManager.java:709) at 
> > 
> org.springframework.transaction.support.AbstractPlatformTransactionMan
> > ager.commit(AbstractPlatformTransactionManager.java:678)
> > {code}
> 
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
> 
> 
> 

Reply via email to