Opened 18 years ago
Closed 18 years ago
#285 closed defect (fixed)
Analysis plugins working on the same experiment may fail with a database constraint violation
Reported by: | Nicklas Nordborg | Owned by: | Nicklas Nordborg |
---|---|---|---|
Priority: | critical | Milestone: | BASE 2.0 |
Component: | core | Version: | RC2 |
Keywords: | Cc: |
Description
The problem seems to be that when generating the ID numbers for data cubes, layers, filters, etc. transactions are not taken into account. Ie. if two transactions are adding a new data cube (ie. a plugin plugin creating the root bioassayset intensities) both transactions will get the same data cube ID and a duplicate key violation error is thrown when the second transaction tries to commit.
Here is an example of a strack trace:
net.sf.basedb.core.BaseException: Batch entry 0 INSERT INTO "base2"."dynamic"."D1230Pos" ("cube", "position", "reporter_id") VALUES (4, 1, 1) was aborted. Call getNextException to see the cause. at net.sf.basedb.core.InternalJobQueue$JobRunner.run(InternalJobQueue.java:455) at java.lang.Thread.run(Thread.java:595) Caused by: net.sf.basedb.core.BaseException: Batch entry 0 INSERT INTO "base2"."dynamic"."D1230Pos" ("cube", "position", "reporter_id") VALUES (4, 1, 1) was aborted. Call getNextException to see the cause. at net.sf.basedb.core.PositionBatcher.flush(PositionBatcher.java:133) at net.sf.basedb.core.PositionBatcher.insert(PositionBatcher.java:200) at net.sf.basedb.util.IntensityCalculatorUtil.createRootBioAssaySet(IntensityCalculatorUtil.java:336) at net.sf.basedb.plugins.IntensityCalculatorPlugin.run(IntensityCalculatorPlugin.java:216) at net.sf.basedb.core.PluginExecutionRequest.invoke(PluginExecutionRequest.java:83) at net.sf.basedb.core.InternalJobQueue$JobRunner.run(InternalJobQueue.java:447) ... 1 more Caused by: java.sql.BatchUpdateException: Batch entry 0 INSERT INTO "base2"."dynamic"."D1230Pos" ("cube", "position", "reporter_id") VALUES (4, 1, 1) was aborted. Call getNextException to see the cause. at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2423) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1257) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:334) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2485) at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723) at net.sf.basedb.core.PositionBatcher.flush(PositionBatcher.java:120) ... 6 more Caused by: java.sql.SQLException: ERROR: duplicate key violates unique constraint "D1230Pos_pkey" at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1471) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1256) ... 10 more
Change History (3)
comment:1 by , 18 years ago
Summary: | Analysis plugins wokring on the same experiment may fail with a database contraint violation → Analysis plugins working on the same experiment may fail with a database constraint violation |
---|
comment:2 by , 18 years ago
Status: | new → assigned |
---|
comment:3 by , 18 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Note:
See TracTickets
for help on using tickets.
(In [2387]) Fixes #285: Analysis plugins working on the same experiment may fail with a database constraint violation