You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Mike Matrigali (Updated) (JIRA)" <ji...@apache.org> on 2012/02/21 08:54:44 UTC

[jira] [Updated] (DERBY-764) java level dead lock when jar operataion are running in parallel in different transactions.

     [ https://issues.apache.org/jira/browse/DERBY-764?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Matrigali updated DERBY-764:
---------------------------------

    Labels: derby_triage10_5_2 derby_triage10_9  (was: derby_triage10_5_2)

Triaged for 10.9, no changes.
                
> java level  dead lock  when jar operataion are running in parallel in different transactions.
> ---------------------------------------------------------------------------------------------
>
>                 Key: DERBY-764
>                 URL: https://issues.apache.org/jira/browse/DERBY-764
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 10.1.2.1
>            Reporter: Suresh Thalamati
>            Priority: Minor
>              Labels: derby_triage10_5_2, derby_triage10_9
>
> Found one Java-level deadlock:
> =============================
> "Thread-2":
>   waiting to lock monitor 0x00a8872c (object 0x03002be8, a org.apache.derby.impl
> .services.locks.LockSet),
>   which is held by "Thread-0"
> "Thread-0":
>   waiting to lock monitor 0x00a8882c (object 0x03022168, a org.apache.derby.impl
> .services.reflect.UpdateLoader),
>   which is held by "Thread-2"
> Java stack information for the threads listed above:
> ===================================================
> "Thread-2":
>         at org.apache.derby.impl.services.locks.LockSet.lockObject(LockSet.java:
> 294)
>         - waiting to lock <0x03002be8> (a org.apache.derby.impl.services.locks.L
> ockSet)
>         at org.apache.derby.impl.services.locks.SinglePool.lockAnObject(SinglePo
> ol.java:174)
>         at org.apache.derby.impl.services.locks.SinglePool.lockObject(SinglePool
> .java:226)
>         at org.apache.derby.impl.services.reflect.UpdateLoader.lockClassLoader(U
> pdateLoader.java:265)
>         at org.apache.derby.impl.services.reflect.UpdateLoader.modifyJar(UpdateL
> oader.java:219)
>         - locked <0x03022168> (a org.apache.derby.impl.services.reflect.UpdateLo
> ader)
>         at org.apache.derby.impl.services.reflect.DatabaseClasses.notifyModifyJa
> r(DatabaseClasses.java:255)
>         at org.apache.derby.impl.sql.execute.JarUtil.notifyLoader(JarUtil.java:4
> 01)
>         at org.apache.derby.impl.sql.execute.JarUtil.add(JarUtil.java:135)
>         at org.apache.derby.impl.sql.execute.JarUtil.add(JarUtil.java:104)
>         at org.apache.derby.impl.sql.execute.AddJarConstantAction.executeConstan
> tAction(AddJarConstantAction.java:96)
>         at org.apache.derby.impl.sql.execute.JarDDL.add(JarDDL.java:45)
>         at org.apache.derby.catalog.SystemProcedures.INSTALL_JAR(SystemProcedure
> s.java:1011)
>         at org.apache.derby.exe.ac2753c07bx0108x308exa52cxffffec5b7c421.g0(Unkno
> wn Source)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.apache.derby.impl.services.reflect.ReflectMethod.invoke(ReflectMe
> thod.java:45)
>         at org.apache.derby.impl.sql.execute.CallStatementResultSet.open(CallSta
> tementResultSet.java:67)
>         at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPre
> paredStatement.java:368)
>         at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedState
> ment.java:1142)
>         - locked <0x03141448> (a org.apache.derby.impl.jdbc.EmbedConnection30)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java
> :550)
>         - locked <0x03141448> (a org.apache.derby.impl.jdbc.EmbedConnection30)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java
> :480)
>         at org.apache.derbyTesting.functionTests.tests.store.OnlineBackupTest3$A
> syncStatementThread.run(OnlineBackupTest3.java:451)
> "Thread-0":
>         at org.apache.derby.impl.services.reflect.UpdateLoader.needReload(Update
> Loader.java:304)
>         - waiting to lock <0x03022168> (a org.apache.derby.impl.services.reflect
> .UpdateLoader)
>         at org.apache.derby.impl.services.reflect.ClassLoaderLock.unlockEvent(Up
> dateLoader.java:362)
>         at org.apache.derby.impl.services.locks.Lock.unlock(Lock.java:128)
>         at org.apache.derby.impl.services.locks.LockControl.unlock(LockControl.j
> ava:160)
>         at org.apache.derby.impl.services.locks.LockSet.unlock(LockSet.java:564)
>         - locked <0x03002be8> (a org.apache.derby.impl.services.locks.LockSet)
>         at org.apache.derby.impl.services.locks.LockSpace.unlockGroup(LockSpace.
> java:126)
>         - locked <0x03153db8> (a org.apache.derby.impl.services.locks.LockSpace)
>         at org.apache.derby.impl.services.locks.SinglePool.unlockGroup(SinglePoo
> l.java:306)
>         at org.apache.derby.impl.store.raw.xact.Xact.releaseAllLocks(Xact.java:1
> 854)
>         at org.apache.derby.impl.store.raw.xact.Xact.postComplete(Xact.java:1899
> )
>         at org.apache.derby.impl.store.raw.xact.Xact.completeCommit(Xact.java:80
> 5)
>         at org.apache.derby.impl.store.raw.xact.Xact.commit(Xact.java:847)
>         at org.apache.derby.impl.store.raw.xact.Xact.commit(Xact.java:642)
>         at org.apache.derby.impl.store.access.RAMTransaction.commit(RAMTransacti
> on.java:1953)
>         at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.doCom
> mit(GenericLanguageConnectionContext.java:1105)
>         at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.userC
> ommit(GenericLanguageConnectionContext.java:935)
>         at org.apache.derby.impl.jdbc.TransactionResourceImpl.commit(Transaction
> ResourceImpl.java:237)
>         at org.apache.derby.impl.jdbc.EmbedConnection.commit(EmbedConnection.jav
> a:862)
>         - locked <0x031413b0> (a org.apache.derby.impl.jdbc.EmbedConnection30)
>         at org.apache.derbyTesting.functionTests.tests.store.OnlineBackupTest3.i
> nstallJarTest(OnlineBackupTest3.java:227)
>         at org.apache.derbyTesting.functionTests.tests.store.OnlineBackupTest3.r
> unTest(OnlineBackupTest3.java:90)
>         at org.apache.derbyTesting.functionTests.tests.store.OnlineBackupTest3.m
> ain(OnlineBackupTest3.java:49)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at org.apache.derbyTesting.functionTests.harness.RunClass.run(RunClass.j
> ava:50)
>         - locked <0x02fe5b78> (a org.apache.derbyTesting.functionTests.harness.R
> unClass)
>         at java.lang.Thread.run(Thread.java:595)
> Found 1 deadlock.
> Note : Found this issue while doing online backup testing, , but it does not look like online backup related,. 
> Scenario:
> --- one thread (Thread 0) is committing  a transaction with   a  install  jar operation in it. 
> --- another thread (Thread 1) is  attempting to add a jar 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira