We're updating the issue view to help you get more done. 

Cash Exit failure on PostgreSQL

Description

Upon attempting to exit the same amount of cash just successfully issued on a node, I see the following exception stacktrace on the node logs:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 E 13:20:05+0000 [flow-executor-0] selection.AbstractCashSelection.attemptSpend - Failed retrieving unconsumed states for: amount [500.00 GBP], onlyFromIssuerParties [[O=PartyA, L=London, C=GB]], notary [null], lockId [af048eef-856f-4397-8fe1-434a3b249447] org.postgresql.util.PSQLException: ERROR: column ccs.issuer_key does not exist Hint: Perhaps you meant to reference the column "ccs.issuer_ref". Position: 807. {actor_id=corda, actor_owningIdentity=O=PartyA, L=London, C=GB, actor_store_id=NODE_CONFIG, invocation_id=e3a7a528-e12a-49e3-8f2b-ee7b9d1b4d4e, invocation_timestamp=2018-03-21T13:20:05.072Z, session_id=c7c4f4b2-0f96-43e9-862c-216830af84b6, session_timestamp=2018-03-21T13:20:05.049Z} E 13:20:05+0000 [flow-executor-0] spi.SqlExceptionHelper.logExceptions - ERROR: current transaction is aborted, commands ignored until end of transaction block {} E 13:20:05+0000 [flow-executor-0] statemachine.TransitionExecutorImpl.executeTransition - Error while executing PersistCheckpoint(id=[af048eef-856f-4397-8fe1-434a3b249447], checkpoint=Checkpoint(invocationContext=InvocationContext(origin=RPC(actor=Actor(id=Id(value=corda), serviceId=AuthServiceId(value=NODE_CONFIG), owningLegalIdentity=O=PartyA, L=London, C=GB)), trace=Trace(invocationId=e3a7a528-e12a-49e3-8f2b-ee7b9d1b4d4e, timestamp: 2018-03-21T13:20:05.072Z, entityType: Invocation, sessionId=c7c4f4b2-0f96-43e9-862c-216830af84b6, timestamp: 2018-03-21T13:20:05.049Z, entityType: Session), actor=Actor(id=Id(value=corda), serviceId=AuthServiceId(value=NODE_CONFIG), owningLegalIdentity=O=PartyA, L=London, C=GB), externalTrace=null, impersonatedActor=null), ourIdentity=O=PartyA, L=London, C=GB, sessions={}, subFlowStack=[Inlined(flowClass=class net.corda.finance.flows.CashExitFlow)], flowState=Started(flowIORequest=Sleep(wakeUpAfter=2018-03-21T13:20:05.439Z), frozenFiber=EE2C5871F099857664AC2AEE52F04F581D1377FA610EAB807CB2186A51E940E3), errorState=Clean, numberOfSuspends=1, deduplicationSeed=af048eef-856f-4397-8fe1-434a3b249447)), erroring state {} org.hibernate.exception.GenericJDBCException: could not extract ResultSet at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:79) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.persister.entity.AbstractEntityPersister.getDatabaseSnapshot(AbstractEntityPersister.java:1353) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.engine.internal.StatefulPersistenceContext.getDatabaseSnapshot(StatefulPersistenceContext.java:322) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.engine.internal.ForeignKeys.isTransient(ForeignKeys.java:238) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.event.internal.AbstractSaveEventListener.getEntityState(AbstractSaveEventListener.java:499) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:83) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:651) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:643) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:638) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at net.corda.node.services.persistence.DBCheckpointStorage.addCheckpoint(DBCheckpointStorage.kt:48) ~[corda-node-R3.CORDA-3.0-SNAPSHOT.jar:?] at net.corda.node.services.statemachine.ActionExecutorImpl.executePersistCheckpoint(ActionExecutorImpl.kt:107) ~[corda-node-R3.CORDA-3.0-SNAPSHOT.jar:?] at net.corda.node.services.statemachine.ActionExecutorImpl.executeAction(ActionExecutorImpl.kt:73) ~[corda-node-R3.CORDA-3.0-SNAPSHOT.jar:?] at net.corda.node.services.statemachine.TransitionExecutorImpl.executeTransition(TransitionExecutorImpl.kt:48) [corda-node-R3.CORDA-3.0-SNAPSHOT.jar:?] at net.corda.node.services.statemachine.interceptors.HospitalisingInterceptor.executeTransition(HospitalisingInterceptor.kt:38) [corda-node-R3.CORDA-3.0-SNAPSHOT.jar:?] at net.corda.node.services.statemachine.FlowStateMachineImpl.processEvent(FlowStateMachineImpl.kt:111) [corda-node-R3.CORDA-3.0-SNAPSHOT.jar:?] at net.corda.node.services.statemachine.FlowStateMachineImpl.access$processEvent(FlowStateMachineImpl.kt:52) [corda-node-R3.CORDA-3.0-SNAPSHOT.jar:?] at net.corda.node.services.statemachine.FlowStateMachineImpl$suspend$1.write(FlowStateMachineImpl.kt:260) [corda-node-R3.CORDA-3.0-SNAPSHOT.jar:?] at co.paralleluniverse.fibers.Fiber$3.run(Fiber.java:1994) [quasar-core-7629695563deae6cc95adcfbebcbc8322fd0241a-jdk8.jar:0.7.9] at co.paralleluniverse.fibers.Fiber.exec(Fiber.java:824) [quasar-core-7629695563deae6cc95adcfbebcbc8322fd0241a-jdk8.jar:0.7.9] at co.paralleluniverse.fibers.RunnableFiberTask.doExec(RunnableFiberTask.java:100) [quasar-core-7629695563deae6cc95adcfbebcbc8322fd0241a-jdk8.jar:0.7.9] at co.paralleluniverse.fibers.RunnableFiberTask.run(RunnableFiberTask.java:91) [quasar-core-7629695563deae6cc95adcfbebcbc8322fd0241a-jdk8.jar:0.7.9] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_131] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_131] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131] Caused by: org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2477) ~[postgresql-42.1.4.jar:42.1.4] at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2190) ~[postgresql-42.1.4.jar:42.1.4] at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:300) ~[postgresql-42.1.4.jar:42.1.4] at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428) ~[postgresql-42.1.4.jar:42.1.4] at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354) ~[postgresql-42.1.4.jar:42.1.4] at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:169) ~[postgresql-42.1.4.jar:42.1.4] at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:117) ~[postgresql-42.1.4.jar:42.1.4] at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) ~[HikariCP-2.5.1.jar:?] at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) ~[HikariCP-2.5.1.jar:?] at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:70) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] ... 24 more Caused by: org.postgresql.util.PSQLException: ERROR: column ccs.issuer_key does not exist Hint: Perhaps you meant to reference the column "ccs.issuer_ref". Position: 807 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2477) ~[postgresql-42.1.4.jar:42.1.4] at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2190) ~[postgresql-42.1.4.jar:42.1.4] at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:300) ~[postgresql-42.1.4.jar:42.1.4] at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428) ~[postgresql-42.1.4.jar:42.1.4] at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354) ~[postgresql-42.1.4.jar:42.1.4] at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:169) ~[postgresql-42.1.4.jar:42.1.4] at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:117) ~[postgresql-42.1.4.jar:42.1.4] at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) ~[HikariCP-2.5.1.jar:?] at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) ~[HikariCP-2.5.1.jar:?] at net.corda.finance.contracts.asset.cash.selection.CashSelectionPostgreSQLImpl.executeQuery(CashSelectionPostgreSQLImpl.kt:86) ~[corda-finance-R3.CORDA-3.0-SNAPSHOT.jar:?] at net.corda.finance.contracts.asset.cash.selection.AbstractCashSelection.attemptSpend(AbstractCashSelection.kt:141) ~[corda-finance-R3.CORDA-3.0-SNAPSHOT.jar:?] at net.corda.finance.contracts.asset.cash.selection.AbstractCashSelection.unconsumedCashStatesForSpending(AbstractCashSelection.kt:117) ~[corda-finance-R3.CORDA-3.0-SNAPSHOT.jar:?] at net.corda.finance.flows.CashExitFlow.call(CashExitFlow.kt:61) ~[corda-finance-R3.CORDA-3.0-SNAPSHOT.jar:?] at net.corda.finance.flows.CashExitFlow.call(CashExitFlow.kt:39) ~[corda-finance-R3.CORDA-3.0-SNAPSHOT.jar:?] at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:146) ~[corda-node-R3.CORDA-3.0-SNAPSHOT.jar:?] at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:52) ~[corda-node-R3.CORDA-3.0-SNAPSHOT.jar:?] at co.paralleluniverse.fibers.Fiber.run1(Fiber.java:1092) ~[quasar-core-7629695563deae6cc95adcfbebcbc8322fd0241a-jdk8.jar:0.7.9] at co.paralleluniverse.fibers.Fiber.exec(Fiber.java:788) ~[quasar-core-7629695563deae6cc95adcfbebcbc8322fd0241a-jdk8.jar:0.7.9] ... 5 more E 13:20:05+0000 [pool-7-thread-1] command.CRaSHSession.execute - Error while evaluating request 'flow watch' flow watch: exception: Class org.hibernate.exception.GenericJDBCException is not annotated or on the whitelist, so cannot be used in serialization Serialization trace: exception (net.corda.core.utilities.Try$Failure) result (net.corda.core.messaging.StateMachineUpdate$Removed) value (rx.Notification) {} com.esotericsoftware.kryo.KryoException: Class org.hibernate.exception.GenericJDBCException is not annotated or on the whitelist, so cannot be used in serialization Serialization trace: exception (net.corda.core.utilities.Try$Failure) result (net.corda.core.messaging.StateMachineUpdate$Removed) value (rx.Notification)

Status

Assignee

Michele Sollecito

Reporter

Jose Coll

Labels

None

Affected OS

None

Severity

Medium

Target Version/s

None

Feature Team

Data / Deployment

Sprint

None

Priority

High