Dag, do I need to fill bug for this issue?
--
Egidijus
Dag H. Wanvik wrote:
Egidijus Vaisnora <[email protected]> writes:
Hello for All,
Questions first:
Deadlock between system tables - is it Derby bug?
Is it possible to avoid deadlock by configuring derby DB, let say changing lock
granularity?
Issue:
I am using 3d part library which makes all transactions with Derby and
in one single situation (unfortunately not reproducible) I got error
printing in log about deadlock. It could be 3d part library problem,
however from the log it obvious that deadlock appeared on Derby system
tables (they are managed by Derby itself), therefore, I think, it is
related to Derby code, which doesn't synchronize two transactions
accessing system tables. Here is log:
The SELECT transaction tries to select from a table (core_File) before
the DLL transaction creating that table has committed..
But you are right, it looks like a Derby DDL dead-lock issue.
Are your connections using auto-commit or not?
Dag
PS! The normal place for such discussion is the derby-user mailing
list, so I am moving it over there.
Lock : TABLE, SYSCOLUMNS, Tablelock
Waiting XID : {9404, IS} , APP, SELECT cdo_version, cdo_created,
cdo_revised, cdo_resource, cdo_container, cdo_feature, name, id FROM
core_File WHERE cdo_id= ? AND (cdo_revised = 0 )
Granted XID : {7351, IX}
Lock : ROW, SYSTABLES, (2,14)
Waiting XID : {7351, X} , APP, CREATE TABLE core_File (cdo_id BIGINT
NOT NULL, cdo_version INTEGER NOT NULL, cdo_class BIGINT NOT NULL,
cdo_created BIGINT NOT NULL, cdo_revised BIGINT NOT NULL, cdo_resource
BIGINT NOT NULL, cdo_container BIGINT NOT NULL, cdo_feature INTEGER
NOT NULL, name VARCHAR(32672), id VARCHAR(32672))
Granted XID : {9404, S}
. The selected victim is XID : 9404.
Thanks,
--
Egidijus