Taverna 3

Database locked after abrupt quit of Taverna - provenance SQLTransactionRollbackException: A lock could not be obtained

Details

  • Type: Bug Bug
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: 2.4.1
  • Fix Version/s: None
  • Component/s: Engine - Provenance
  • Labels:
    None

Description

While running workflow of T2-1020 I got this exception:

WARN  2009-11-23 15:16:55,969 (net.sf.taverna.t2.provenance.lineageservice.ProvenanceWriter:559) - ****  insert failed for query
java.sql.SQLTransactionRollbackException: A lock could not be obtained within the time requested
        at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
        at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
        at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
        at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
        at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(Unknown Source)
        at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
        at org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:248)
        at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:302)
        at net.sf.taverna.t2.provenance.lineageservice.ProvenanceWriter.updateVarBinding(ProvenanceWriter.java:540)
        at net.sf.taverna.t2.provenance.lineageservice.EventProcessor.processVarBinding(EventProcessor.java:1166)
        at net.sf.taverna.t2.provenance.lineageservice.EventProcessor.processVarBinding(EventProcessor.java:1082)
        at net.sf.taverna.t2.provenance.lineageservice.EventProcessor.processOutput(EventProcessor.java:908)
        at net.sf.taverna.t2.provenance.lineageservice.EventProcessor.processProcessEvent(EventProcessor.java:623)
        at net.sf.taverna.t2.provenance.lineageservice.Provenance.processEvent(Provenance.java:225)
        at net.sf.taverna.t2.provenance.lineageservice.Provenance.acceptRawProvenanceEvent(Provenance.java:141)
        at net.sf.taverna.t2.provenance.connector.ProvenanceConnector.addProvenanceItem(ProvenanceConnector.java:151)
        at net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.IntermediateProvenance.receiveResult(IntermediateProvenance.java:430)
        at net.sf.taverna.t2.workflowmodel.processor.dispatch.AbstractDispatchLayer.receiveResult(AbstractDispatchLayer.java:84)
        at net.sf.taverna.t2.workflowmodel.processor.dispatch.AbstractErrorHandlerLayer.receiveResult(AbstractErrorHandlerLayer.java:136)
        at net.sf.taverna.t2.workflowmodel.processor.dispatch.AbstractErrorHandlerLayer.receiveResult(AbstractErrorHandlerLayer.java:136)
        at net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke$InvokeCallBack.receiveResult(Invoke.java:300)
        at net.sf.taverna.t2.activities.stringconstant.StringConstantActivity$1.run(StringConstantActivity.java:85)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: A lock could not be obtained within the time requested
        at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
        at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
        ... 30 more
Caused by: ERROR 40XL1: A lock could not be obtained within the time requested
        at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
        at org.apache.derby.impl.services.locks.ConcurrentLockSet.lockObject(Unknown Source)
        at org.apache.derby.impl.services.locks.AbstractPool.lockObject(Unknown Source)
        at org.apache.derby.impl.store.raw.xact.RowLocking2.lockContainer(Unknown Source)
        at org.apache.derby.impl.store.raw.data.BaseContainerHandle.useContainer(Unknown Source)
        at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
        at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown Source)
        at org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown Source)
        at org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unknown Source)
        at org.apache.derby.impl.store.access.heap.Heap.open(Unknown Source)
        at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
        at org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown Source)
        at org.apache.derby.impl.sql.compile.ResultColumnList.generateHolderMethod(Unknown Source)
        at org.apache.derby.impl.sql.compile.FromBaseTable.getScanArguments(Unknown Source)
        at org.apache.derby.impl.sql.compile.FromBaseTable.generateResultSet(Unknown Source)
        at org.apache.derby.impl.sql.compile.FromBaseTable.generate(Unknown Source)
        at org.apache.derby.impl.sql.compile.IndexToBaseRowNode.generate(Unknown Source)
        at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(Unknown Source)
        at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(Unknown Source)
        at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(Unknown Source)
        at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(Unknown Source)
        at org.apache.derby.impl.sql.compile.NormalizeResultSetNode.generate(Unknown Source)
        at org.apache.derby.impl.sql.compile.UpdateNode.generate(Unknown Source)
        at org.apache.derby.impl.sql.compile.StatementNode.generate(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.prepareInternalStatement(Unknown Source)
        ... 24 more

Also got:

ERROR 2009-11-23 15:18:19,754 (net.sf.taverna.t2.workbench.run.DataflowRunsComponent:458) - Failed to delete workflow run 'Removenullvalues 17:14:07' (run id 5d776f48-65d9-4dc3-a061-bbee50c08e6f) from provenance database.
net.sf.taverna.t2.reference.DaoException: Key t2:ref//taverna?a7275f65-437d-4a5e-8e92-2d358671502a not found in store
        at net.sf.taverna.t2.reference.impl.InMemoryReferenceSetDao.get(InMemoryReferenceSetDao.java:51)
        at net.sf.taverna.t2.reference.impl.ReferenceSetServiceImpl.delete(ReferenceSetServiceImpl.java:129)
        at net.sf.taverna.t2.reference.impl.ReferenceServiceImpl.delete(ReferenceServiceImpl.java:684)
        at net.sf.taverna.t2.reference.impl.ReferenceServiceImpl.delete(ReferenceServiceImpl.java:671)
        at net.sf.taverna.t2.workbench.run.DataflowRunsComponent$DeleteWorkflowRunsThread.run(DataflowRunsComponent.java:439)

.. but this might be a different error..

Issue Links

Activity

Hide
Alan Williams added a comment - 2009-12-14 09:59

Can possibly be detected but difficult to work around. Push to post 2.1

Show
Alan Williams added a comment - 2009-12-14 09:59 Can possibly be detected but difficult to work around. Push to post 2.1
Hide
Alex Nenadic added a comment - 2010-03-15 14:36

Could warn user that the database is being locked and than they could delete it to unblock Taverna but then all the provenance data is lost.

Show
Alex Nenadic added a comment - 2010-03-15 14:36 Could warn user that the database is being locked and than they could delete it to unblock Taverna but then all the provenance data is lost.
Hide
Alan Williams added a comment - 2010-09-10 11:38

Worth looking at again

Show
Alan Williams added a comment - 2010-09-10 11:38 Worth looking at again

People

Vote (0)
Watch (0)

Dates

  • Created:
    2009-11-23 15:33
    Updated:
    2012-06-19 11:22

Time Tracking

Estimated:
2d
Original Estimate - 2 days
Remaining:
2d
Remaining Estimate - 2 days
Logged:
Not Specified
Time Spent - Not Specified