db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Knut Anders Hatlen <Knut.Hat...@Sun.COM>
Subject Re: Can someone explain this deadlock?
Date Sat, 05 Sep 2009 17:41:32 GMT
Dag.Wanvik@Sun.COM (Dag H. Wanvik) writes:

> T K <sanokistoka@yahoo.com> writes:
>
>> Derby 10.3
>>
>> Caused by: java.sql.SQLTransactionRollbackException: A lock could not be obtained
due to a deadlock, cycle of locks and waiters is:
>> Lock : ROW, SOMETABLE, (217,6)
>>   Waiting XID : {216333, S} , SOMESCHEMA, select something from SOMETABLE where somethingElse
= ?
>>   Granted XID : {216146, X} 
>> Lock : ROW, SOMETABLE, (4,1)
>>   Waiting XID : {216146, S} , SOMESCHEMA, update SOMETABLE  set something = ? where
somethingElse = ?
>>   Granted XID : {216190, S} , {216333, S} 
>> . The selected victim is XID : 216333.
>
> Hmm, it looks as if transaction 216146 is asking for a shared lock on (4,1), and
> there are only shared locks on that row apparently, so I can't see why
> that should not be granted, weird. Could this be an error, I wonder?

There may be another transaction waiting for an exclusive lock on that
row, and then no new shared locks are granted on that row until the
exclusive lock has been granted and released. There is a problem with
the error reporting in such a case, see this JIRA report:
https://issues.apache.org/jira/browse/DERBY-2877

-- 
Knut Anders

Mime
View raw message