Open issues

A non-deserializable checkpoint in the database prevents the node from starting
CORDA-3419
Environment and property overrides do not work for system properties.
CORDA-3382
Exceptions thrown in raw vault observers can cause critical issues
CORDA-3329
Transaction chain resolution slows down significantly with large numbers of transactions
CORDA-3295
Notaries - Increase size of x500 name columns
CORDA-3255
Intercept all database errors that originate from Corda but can be thrown in CorDapp code.
CORDA-3217
Flow Hospital unable to identify in ReceiveFinalityFlow when throwing from transition
CORDA-3204
Change default behaviour of flow hospital
CORDA-3195
Some SQL statements in manually created DDL script from Database Management Tool for node set up with PostgreSQL database have syntax errors
CORDA-3125
Receiver node does not clear node_checkpoints upon double spend error
CORDA-3095
Exception not logged when the node can't deserialise a flow session message
CORDA-3092
Postgres isValid does not always respect the timeout
CORDA-3029
RPC client acknowledge window is too large.
CORDA-2845
Don't fail deserialization with carpentry errors IFF the carpented types would be discarded through evolution
CORDA-2707
Configure Team City to ensure that all cordapps are signed by R3
CORDA-2226
Expose dev mode via cordformation
CORDA-1380
myLegalName constrains not explained
CORDA-677
Remove Design Docs
CORDA-3422
Remove design documents from doc site
CORDA-3420
Use of @DeprecatedConstructorForDeserialization annotation does not seem to be working within the test class for State Class Evolution when existing non nullable parameter is changed to nullable
CORDA-3390
Docs: OS 4.3 database changes are missing on "Nodes » Node database" page in documentation.
CORDA-3371
Update documentation of our policy on API stability, internal methods and deprecation
CORDA-3328
Deserialisation of Throwables does not support evolution
CORDA-3316
Modify killFlow to kill flow instantly (rather than waiting to suspend)
CORDA-3291
CorDapp versioning: PartyA is unable to build the transaction to PartyB after contracts upgrade for PartyA and Notary
CORDA-3262
Design: Problems with ZIP file attachments
CORDA-3215
Send session errors on killFlow
CORDA-3198
Inefficient query generated on vault queries with custom paging
CORDA-3176
Corda shell: flow id is not fully displayed (trimmed last characters in flow watch)
CORDA-3081
OS MSSQL database migration failing on OS 5.0 SNAPSHOT
CORDA-3070
Propagate and expose the actual target destination of a flow on the receiving end
CORDA-3059
Performance problems when transactions contain custom attachments
CORDA-3036
Fix the Network Builder and add it to tools being published
CORDA-2998
Build stability: Driver tests can encounter missing nodes
CORDA-2991
Serialization Error encountered when flow throws IllegalFlowLogicException
CORDA-2969
JdbcSQLException thrown when receiving a transaction with reference-states in Observer node
CORDA-2967
Node won't start up with multiple JARs with different hashes but same version number in manifest
CORDA-2957
Retrospectivly release Network Builder (Doc Link Broken)
CORDA-2928
Remove programmatic gradle invocation during unit tests.
CORDA-2916
Corda should allow multiple Non-code attachments to contain *non-class* files with the same names
CORDA-2867
Add "hibernate.show_sql" option to CordaPersistence
CORDA-2857
Rewrite the "Cordapp versioning" section in upgrading-cordapps.rst
CORDA-2850
Nightly regressions tests against feature branches
CORDA-2829
Add a config file option to start even if you are behind minPlatformVersion
CORDA-2551
Open/create Testnet API to be able to register nodes without using Web UI.
CORDA-2370
FlowMonitor prints misleading messages
CORDA-2319
MissingAttachmentRejection when trying to verify() a transaction built on 2 parties
CORDA-2143
FinalityFlow updates participants sequentially and will hang if the participant is not responsive (e.g. their node is down)
CORDA-2110
Shell: establish best practices guide for the shell
CORDA-1972
Document the trivial exploits in member-on-member attack in Testnet
CORDA-1929
issue 1 of 722

A non-deserializable checkpoint in the database prevents the node from starting

Description

I noticed whilst writing some new performance benchmark flows that if a checkpoint stored in the database cannot be deserialized, then the node will not start. In the perf cluster, we go into a loop trying to restart the node. We should at least catch individual flows that cannot be deserialized during node restart, log their flow ID and an appropriate message, but then continue with the next flow. This check should also apply to any flow "retried" from the flow hospital.

Now, I'd obviously skipped the dev mode checkpoint checker in this instance (but I guess others could too), but it's perhaps possible someone could inject something into the database in a DoS attempt or perhaps more likely, due to a version upgrade / bug encounter the same thing.

It might also be nice to represent the flow as failed in some way in the Flow Hospital and offer some mechanism to clean up. Perhaps put this work in a further Story once the initial bug has been fixed, since it only offers benefits / depends on future Flow Hospital work.

Status

Assignee

Alexey Chernikov

Reporter

Marina Kudryavtseva

Priority

Highest

Fix versions

Ported to...

Corda 4.3
Corda Enterprise 4.3

Feature Team

Kernel Group

CVSS Vector

None

Severity

Medium

Story Points

5
Configure