You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Anita Kulshreshtha <a_...@yahoo.com> on 2007/12/13 15:25:20 UTC

Monitoring console deadlock

   I was running monitoring console on G(portoffset=10) and the agent
on default G instance. I saw this trace on the screen at a later time.
So I can not describe what exactly I was doing.. This can probably be
fixed by ordering the sql operations correctly.

Thanks
Anita

14:48:27,968 ERROR [SnapshotDBHelper] A lock could not be obtained due
to a dead
lock, cycle of locks and waiters is:
Lock : ROW, SYSCOLUMNS, (4,17)
  Waiting XID : {691, S} , MONITOR, INSERT INTO Statistics
(snapshot_time, stats
ValueList, mbeanId) VALUES
(1197488887609,'23209078,30091640,34628360,32094576',
5)
  Granted XID : {693, X}
Lock : ROW, STATISTICS, (4,7)
  Waiting XID : {693, S} , MONITOR, SELECT DISTINCT snapshot_time FROM
Statistic
s WHERE snapshot_time < 1194896887609
  Granted XID : {691, X}
. The selected victim is XID : 691.
ERROR 40001: A lock could not be obtained due to a deadlock, cycle of
locks and
waiters is:
Lock : ROW, SYSCOLUMNS, (4,17)
  Waiting XID : {691, S} , MONITOR, INSERT INTO Statistics
(snapshot_time, stats
ValueList, mbeanId) VALUES
(1197488887609,'23209078,30091640,34628360,32094576',
5)
  Granted XID : {693, X}
Lock : ROW, STATISTICS, (4,7)
  Waiting XID : {693, S} , MONITOR, SELECT DISTINCT snapshot_time FROM
Statistic
s WHERE snapshot_time < 1194896887609
  Granted XID : {691, X}
. The selected victim is XID : 691.
        at
org.apache.derby.iapi.error.StandardException.newException(Unknown So
urce)
        at
org.apache.derby.impl.services.locks.Deadlock.buildException(Unknown
Source)
        at
org.apache.derby.impl.services.locks.LockSet.lockObject(Unknown Sourc
e)
        at
org.apache.derby.impl.services.locks.SinglePool.lockAnObject(Unknown
Source)
        at
org.apache.derby.impl.services.locks.SinglePool.lockObject(Unknown So
urce)
        at
org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForRead(Un
known Source)
        at
org.apache.derby.impl.store.access.heap.HeapController.lockRow(Unknow
n Source)
        at
org.apache.derby.impl.store.access.heap.HeapController.lockRow(Unknow
n Source)
        at
org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRow
OnPage(Unknown Source)
        at
org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockSc
anRow(Unknown Source)
        at
org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockSc
anRow(Unknown Source)
        at
org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(U
nknown Source)
        at
org.apache.derby.impl.store.access.btree.BTreeScan.fetchNext(Unknown
Source)
        at
org.apache.derby.impl.sql.catalog.TabInfoImpl.getRowInternal(Unknown
Source)
        at
org.apache.derby.impl.sql.catalog.TabInfoImpl.getRowLocation(Unknown
Source)
        at
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.computeRowLocati
on(Unknown Source)
        at
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.computeAutoincRo
wLocations(Unknown Source)
        at org.apache.derby.impl.sql.compile.InsertNode.bind(Unknown
Source)
        at
org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)

        at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown
Source)
        at
org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepa
reInternalStatement(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown
Source)
        at
org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(Unknown Sourc
e)
        at
org.tranql.connector.jdbc.StatementHandle.executeUpdate(StatementHand
le.java:166)
        at
org.apache.geronimo.monitor.snapshot.SnapshotDBHelper.addSnapshotToDB
(SnapshotDBHelper.java:229)
        at
org.apache.geronimo.monitor.snapshot.SnapshotProcessor.takeSnapshot(S
napshotProcessor.java:79)
        at
org.apache.geronimo.monitor.MasterRemoteControl.handleTimeout(MasterR
emoteControl.java:205)
        at sun.reflect.GeneratedMethodAccessor385.invoke(Unknown
Source)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invoc
ation.invoke(ReflectionInvocationContext.java:146)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proce
ed(ReflectionInvocationContext.java:129)
        at
org.apache.openejb.core.interceptor.InterceptorStack.invoke(Intercept
orStack.java:67)
        at
org.apache.openejb.core.stateless.StatelessContainer._invoke(Stateles
sContainer.java:203)
        at
org.apache.openejb.core.stateless.StatelessContainer.invoke(Stateless
Container.java:165)
        at
org.apache.openejb.core.timer.EjbTimerServiceImpl.ejbTimeout(EjbTimer
ServiceImpl.java:284)
        at
org.apache.openejb.core.timer.EjbTimerServiceImpl.access$100(EjbTimer
ServiceImpl.java:43)
        at
org.apache.openejb.core.timer.EjbTimerServiceImpl$EjbTimeoutTimerTask
$1.run(EjbTimerServiceImpl.java:350)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:650)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:675)
        at java.lang.Thread.run(Thread.java:595) 


      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ 


Re: Monitoring console deadlock

Posted by Viet Nguyen <vh...@gmail.com>.
Anita,

Thanks for testing the monitoring plugin, because we could definitely
use more of that. Have you been able to reproduce this problem lately?
I remember experiencing the same problem because the connections
weren't be closed at the right time, so I'm wondering if I didn't
catch all of the "closes" that should have been there.

Thanks,
Viet

On Dec 13, 2007 9:25 AM, Anita Kulshreshtha <a_...@yahoo.com> wrote:
>    I was running monitoring console on G(portoffset=10) and the agent
> on default G instance. I saw this trace on the screen at a later time.
> So I can not describe what exactly I was doing.. This can probably be
> fixed by ordering the sql operations correctly.
>
> Thanks
> Anita
>
> 14:48:27,968 ERROR [SnapshotDBHelper] A lock could not be obtained due
> to a dead
> lock, cycle of locks and waiters is:
> Lock : ROW, SYSCOLUMNS, (4,17)
>   Waiting XID : {691, S} , MONITOR, INSERT INTO Statistics
> (snapshot_time, stats
> ValueList, mbeanId) VALUES
> (1197488887609,'23209078,30091640,34628360,32094576',
> 5)
>   Granted XID : {693, X}
> Lock : ROW, STATISTICS, (4,7)
>   Waiting XID : {693, S} , MONITOR, SELECT DISTINCT snapshot_time FROM
> Statistic
> s WHERE snapshot_time < 1194896887609
>   Granted XID : {691, X}
> . The selected victim is XID : 691.
> ERROR 40001: A lock could not be obtained due to a deadlock, cycle of
> locks and
> waiters is:
> Lock : ROW, SYSCOLUMNS, (4,17)
>   Waiting XID : {691, S} , MONITOR, INSERT INTO Statistics
> (snapshot_time, stats
> ValueList, mbeanId) VALUES
> (1197488887609,'23209078,30091640,34628360,32094576',
> 5)
>   Granted XID : {693, X}
> Lock : ROW, STATISTICS, (4,7)
>   Waiting XID : {693, S} , MONITOR, SELECT DISTINCT snapshot_time FROM
> Statistic
> s WHERE snapshot_time < 1194896887609
>   Granted XID : {691, X}
> . The selected victim is XID : 691.
>         at
> org.apache.derby.iapi.error.StandardException.newException(Unknown So
> urce)
>         at
> org.apache.derby.impl.services.locks.Deadlock.buildException(Unknown
> Source)
>         at
> org.apache.derby.impl.services.locks.LockSet.lockObject(Unknown Sourc
> e)
>         at
> org.apache.derby.impl.services.locks.SinglePool.lockAnObject(Unknown
> Source)
>         at
> org.apache.derby.impl.services.locks.SinglePool.lockObject(Unknown So
> urce)
>         at
> org.apache.derby.impl.store.raw.xact.RowLocking3.lockRecordForRead(Un
> known Source)
>         at
> org.apache.derby.impl.store.access.heap.HeapController.lockRow(Unknow
> n Source)
>         at
> org.apache.derby.impl.store.access.heap.HeapController.lockRow(Unknow
> n Source)
>         at
> org.apache.derby.impl.store.access.btree.index.B2IRowLocking3.lockRow
> OnPage(Unknown Source)
>         at
> org.apache.derby.impl.store.access.btree.index.B2IRowLocking3._lockSc
> anRow(Unknown Source)
>         at
> org.apache.derby.impl.store.access.btree.index.B2IRowLockingRR.lockSc
> anRow(Unknown Source)
>         at
> org.apache.derby.impl.store.access.btree.BTreeForwardScan.fetchRows(U
> nknown Source)
>         at
> org.apache.derby.impl.store.access.btree.BTreeScan.fetchNext(Unknown
> Source)
>         at
> org.apache.derby.impl.sql.catalog.TabInfoImpl.getRowInternal(Unknown
> Source)
>         at
> org.apache.derby.impl.sql.catalog.TabInfoImpl.getRowLocation(Unknown
> Source)
>         at
> org.apache.derby.impl.sql.catalog.DataDictionaryImpl.computeRowLocati
> on(Unknown Source)
>         at
> org.apache.derby.impl.sql.catalog.DataDictionaryImpl.computeAutoincRo
> wLocations(Unknown Source)
>         at org.apache.derby.impl.sql.compile.InsertNode.bind(Unknown
> Source)
>         at
> org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
>
>         at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown
> Source)
>         at
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepa
> reInternalStatement(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown
> Source)
>         at
> org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(Unknown Sourc
> e)
>         at
> org.tranql.connector.jdbc.StatementHandle.executeUpdate(StatementHand
> le.java:166)
>         at
> org.apache.geronimo.monitor.snapshot.SnapshotDBHelper.addSnapshotToDB
> (SnapshotDBHelper.java:229)
>         at
> org.apache.geronimo.monitor.snapshot.SnapshotProcessor.takeSnapshot(S
> napshotProcessor.java:79)
>         at
> org.apache.geronimo.monitor.MasterRemoteControl.handleTimeout(MasterR
> emoteControl.java:205)
>         at sun.reflect.GeneratedMethodAccessor385.invoke(Unknown
> Source)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at
> org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invoc
> ation.invoke(ReflectionInvocationContext.java:146)
>         at
> org.apache.openejb.core.interceptor.ReflectionInvocationContext.proce
> ed(ReflectionInvocationContext.java:129)
>         at
> org.apache.openejb.core.interceptor.InterceptorStack.invoke(Intercept
> orStack.java:67)
>         at
> org.apache.openejb.core.stateless.StatelessContainer._invoke(Stateles
> sContainer.java:203)
>         at
> org.apache.openejb.core.stateless.StatelessContainer.invoke(Stateless
> Container.java:165)
>         at
> org.apache.openejb.core.timer.EjbTimerServiceImpl.ejbTimeout(EjbTimer
> ServiceImpl.java:284)
>         at
> org.apache.openejb.core.timer.EjbTimerServiceImpl.access$100(EjbTimer
> ServiceImpl.java:43)
>         at
> org.apache.openejb.core.timer.EjbTimerServiceImpl$EjbTimeoutTimerTask
> $1.run(EjbTimerServiceImpl.java:350)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
> utor.java:650)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:675)
>         at java.lang.Thread.run(Thread.java:595)
>
>
>       ____________________________________________________________________________________
> Be a better friend, newshound, and
> know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
>
>