Commit Graph

8730 Commits

Author SHA1 Message Date
Kyriakos Tharrouniatis
501b766e71
CORDA-3604 Store failed and hospitalised errors along with corresponding statuses (#6061)
Flows that are kept for overnight observation:

- Save their Checkpoint.status as 'HOSPITALIZED' in the database
- Save the error that caused the hospitalization in the database

A new Event was added for this reason. Whenever the hospital determines
a flow for hospitalization, it adds this Event in the flow's fiber queue.
When processed it creates a new DB transaction, stores the checkpoint status along with
the error, and it adds a 'FlowContinuation.ProcessEvents' continuation so that the fiber keeps
processing events (effectively since there are no more events in the fiber's channel, the fiber will suspend).

Flows that error:

- Their checkpoints are kept in the database
- Save their Checkpoint.status as 'FAILED'
- Save the error that caused the error in the database

Upon erroring, the flow's Checkpoint.status gets updated('FAILED') and the checkpoint is stored
in the database instead of getting removed. The flow then propagates the error to counterparties,
sets its future with the error and gets removed from memory.
2020-04-07 17:58:00 +01:00
Chris Rankin
39cc5e3403
CORDA-3698: Require no classifier for Open Core and DJVM-related modules. (#6132)
* ENT-4967: Require no classifier for corda-node-djvm, corda-deserializers-djvm.

* Also remove classifiers from core, serialization and finance-contracts.

* Compile corda-serialization-djvm for Java 8 and remove its classifier.
2020-04-06 11:00:40 +01:00
Chris Rankin
e93e5f28a1
CORDA-3689: Fix scanning AppClassLoader on Java 11. (#6121)
* Upgrade ClassGraph to 4.6.68 to fix scanning AppClassLoader on JDK11.
* Revert CORDA-1575 to prevent CordaRPCClient logs from being clobbered.
2020-04-06 11:00:10 +01:00
Walter Oggioni
42211a6d45
fixed bug in error reporting (#6127)
the current code doesn't forward the exception to the logging system, this means that any cause inside the exception is lost as with all of the stacktraces (both the one of the thrown exception and the one belonging to its cause).
The correct way to log an exception is to pass both the message and the exception to the logging system.
2020-04-06 09:48:35 +01:00
Viktor Kolomeyko
1d7c13276c
ENT-5089: Forcibly free associated with transport resources if it is already closed (#6130) 2020-04-03 17:30:29 +01:00
Adel El-Beik
04963e7f67
CORDA-3690: Changed algorithm name used in signature scheme object from ECDSA to EC… (#6123)
* CORDA-3690: Changed algorithm name used in signature from ECDSA to EC. JDK11 checks with in key generation.

* CORDA-3690: Remove the SHA512WITHSPHINCS256 signature scheme from the generate key pair and sign test.

* CORDA-3690: Algorithm in SignatureScheme has changed to EC from ECDSA so change test to match.

Co-authored-by: Adel El-Beik <adelel-beik@19LDN-MAC108.local>
2020-04-03 15:43:52 +01:00
Dimitris Gounaris
3dc60aa83f
Make sonarqube step resilient to errors (#6128)
Co-authored-by: Dimitris Gounaris <dimitrisgounaris@20LDN-MAC257.local>
2020-04-03 15:14:03 +01:00
Dimos Raptis
ccde0ac909
[ENT-4754] - Open access to members of FinalityFlow (#6113)
* [ENT-4754] - Open access to members of FinalityFlow

* Adjust slightly to provide access without changing the public api
2020-04-03 08:47:41 +01:00
Chris Rankin
032f008e7e
CORDA-3688: Apply @Named annotation to CRaSH commands to fix usage messages. (#6126) 2020-04-03 08:35:01 +01:00
Chris Rankin
be3e7969f7
CORDA-3688: Apply @Named annotation to CRaSH commands to fix usage messages. (#6124) 2020-04-03 08:34:22 +01:00
Chris Rankin
b340766506
ENT-5039 Improved help text for commands (#6006) (#6122)
* Improved help text for commands
* Address feedback

Co-authored-by: jakubbielawa <jakub.bielawa@gmail.com>
2020-04-02 17:43:51 +01:00
Stefan Iliev
1718af3a79
Notary logs warning on startup when it's not in the whitelist (#5857) 2020-04-02 10:50:03 +01:00
Ryan Fowler
18c9e4a9da
Revert "CORDA-3675: Update netty for security (#6109)" (#6120)
This reverts commit 82a3f69f
2020-04-01 18:16:38 +01:00
Chris Rankin
a7358ffa1a
CORDA-3643: Initialise MockNetwork's serialisation environment with all custom cordapps. (#6115) 2020-04-01 17:42:29 +01:00
Dimitris Gounaris
76cf4e6e66
TM-213: Add sonarqube configuration in gradle and jenkinsfile (#6060)
* Add sonarqube for regression builds

* Remove duplicated script tag

* Add detekt support to sonarqube

Co-authored-by: Dimitris Gounaris <dimitrisgounaris@20LDN-MAC257.local>
2020-04-01 11:03:01 +01:00
Chris Rankin
0771a22d5b
ENT-4967: Allow quasar_classifier to be either null or an empty string. (#6119) 2020-03-31 15:32:36 +01:00
Ryan Fowler
82a3f69f15
CORDA-3675: Update netty for security (#6109)
* CORDA-3675: Update netty for security

* Try to improve thread counting in tests
2020-03-31 10:22:10 +01:00
williamvigorr3
024d63147d
CORDA-3491 Remove the flow state when a flow finishes (#6083)
Added a new field Completed to the in-memory object FlowState.

FlowState.Completed is corresponds to flow_state=Null in the DB.

This change will save disk space.
2020-03-30 16:56:03 +01:00
Christian Sailer
ccca605865
ENT-5134 Discoverable Hibernate Session Factory Factory (#6091)
* Introduce CordaSessionFactoryFactory interface and the H2 implememntation
* Load SessionFactoryFactory via service loader
* Add Postgres SessionFactoryFactory
* Add extraConfiguration function for SessionFactoryFactory implementations to expose special config values.
2020-03-27 11:29:40 +00:00
Chris Rankin
f1ebaa761b
CORDA-3680: Add CorDapp custom serialisers to Driver's in-process nodes. (#6098)
* Run serialisation tests with both in-process and out-of-process nodes.

* Add custom serialisers and whitelists to Driver's AMQPServerSerializationScheme.
2020-03-27 10:01:30 +00:00
Dan Newton
678fb6eb94
Merge pull request #6108 from corda/dan/os-4.4-to-4.5-merge-2020-03-26
OS 4.4 to 4.5 merge 2020-03-26
2020-03-27 09:39:41 +00:00
Chris Rankin
cccbbe1c80
CORDA-3680: Add CorDapp custom serialisers to Driver's in-process nodes. (#6102)
* Run serialisation tests with both in-process and out-of-process nodes.

* Add custom serialisers and whitelists to Driver's AMQPServerSerializationScheme.
2020-03-27 09:16:31 +00:00
Dimos Raptis
963de40902
[NOTICK] - Enable check in detekt for unused imports (#6106)
* [NOTICK] - Enable check in detekt for unused imports

* Put back accidental removal of used import

* Some more accidental removals
2020-03-26 15:46:33 +00:00
LankyDan
d9c1907c88 Merge branch 'release/os/4.4' into dan/os-4.4-to-4.5-merge-2020-03-26 2020-03-26 14:26:41 +00:00
Rick Parker
a5d49ea111
Merge pull request #6104 from corda/jzd/merge-os4.3-into-os4.4-2020-03-26
[NOTICK] - Merge OS 4.3 into OS 4.4 (2020-03-26)
2020-03-26 14:21:00 +00:00
Dan Newton
ce202995c5
Merge pull request #6105 from corda/os_4.5-feature_checkpoint_table_improvements-merge
[NOTICK] OS 4.5 to feature/checkpoint_table_improvements merge
2020-03-26 14:00:39 +00:00
Kyriakos Tharrouniatis
6baa775e23 Merge branch 'release/os/4.5' into os_4.5-feature_checkpoint_table_improvements-merge 2020-03-26 11:37:00 +00:00
Joseph Zuniga-Daly
b766eff284 Merge remote-tracking branch 'origin/release/os/4.3' into jzd/merge-os4.3-into-os4.4-2020-03-26 2020-03-26 11:01:39 +00:00
Denis Rekalov
f1c14edd00
Merge pull request #6100 from corda/denis/ENT-4659-remove-crypto-service-factory
ENT-4659: Remove CryptoServiceFactory from OS
2020-03-26 10:54:24 +00:00
Rick Parker
d77c524381
Merge pull request #6103 from corda/dan/backport-corda-3677
Backport CORDA-3677
2020-03-26 10:48:28 +00:00
Kyriakos Tharrouniatis
f6952963a8 CORDA-3677 FlowExternalOperation serialising reference to FlowLogic (#6094)
* Stop capturing 'FlowLogic' references in flowAsyncOperation;

Creating concrete classes removes the implicit reference to FlowLogic (as this) being included in the anonymous object

* Modify test code so that lambdas no longer get implicit references to their enclosing 'FlowLogic'
2020-03-26 10:00:57 +00:00
Kyriakos Tharrouniatis
caf152f175
CORDA-3677 FlowExternalOperation serialising reference to FlowLogic (#6094)
* Stop capturing 'FlowLogic' references in flowAsyncOperation;

Creating concrete classes removes the implicit reference to FlowLogic (as this) being included in the anonymous object

* Modify test code so that lambdas no longer get implicit references to their enclosing 'FlowLogic'
2020-03-26 09:23:38 +00:00
Dan Newton
79b36aea8f
CORDA-3601 Record a flow's finish time (#6079)
* CORDA-3601 Record a flow's finish time

Record a flow's finish time by updating its metadata record. It is set
in `updateCheckpoint` by checking the status of the checkpoint. If it is
 `COMPLETED` it will set the `finishInstant` on the metadata object and
 update it.

* CORDA-3601 Record flow finish time for all finished statuses

Update the flow finish time for the following statuses:

- COMPLETED
- KILLED
- FAILED

* CORDA-3601 Use platform clock in `DBCheckpointStorage`
2020-03-25 13:47:00 +00:00
Denis Rekalov
b1180b467b ENT-4659: Remove CryptoServiceFactory from OS 2020-03-25 12:56:33 +00:00
Joseph Zuniga-Daly
2dbf90cafe
ENT-4857: Fix race condition in trackTransaction (#6096)
- Fix issue
- Emit warning if we are inside a DB transaction
- Include a path that does not emit warning
- Add unit tests
2020-03-25 11:53:06 +00:00
Dimos Raptis
b73a498062
[ENT-4754] - Move subflow preparation logic in FlowStateMachine 2020-03-25 09:02:14 +00:00
Ramzi El-Yafi
c697b5850b
[EG-896] Additional uniqueness provider test cases (#6085) 2020-03-24 11:10:27 +00:00
Rick Parker
dbefd62d81
Merge pull request #6090 from corda/dan/os-4.4-to-4.5-merge-2020-03-23
OS 4.4 to 4.5 merge 2020-030-23
2020-03-23 14:38:00 +00:00
LankyDan
82e068be94 Merge branch 'release/os/4.4' into dan/os-4.4-to-4.5-merge-2020-03-23 2020-03-23 11:46:24 +00:00
przemolb
8f54ef740f
Merge pull request #5610 from corda/pb-add-docker-with-debug-tools
Add debug dockerfiles with additional tools useful for investigating …
2020-03-21 23:09:49 +00:00
Dan Newton
668748b054
CORDA-3669 Do not execute ExecuteAsyncOperation multiple times (#6087)
* CORDA-3669 Do not execute `ExecuteAsyncOperation` multiple times

When a `FlowExternalOperation` or `FlowExternalAsyncOperation` executes
and completes a flag (`isFlowResumed`) is switched to true.

This flag was used inside of `DoRemainingWorkTransition` to decide
whether to skip over the execution of an event.

Since this flag was being switched to true when the external operation's
 future completed, it was possible for _unexpected_ events to be placed
in the fiber's queue that would retrigger the
`FlowIORequest.ExecuteAsyncOperation`, that is held as the checkpoint's
next `FlowIORequest`to process.

By using the existing `StateMachineState.isTransactionTracked` (and
renaming it to `isWaitingForFuture`) we can decide to not process the
`FlowIORequest.ExecuteAsyncOperation` if it has already been called
before. This moves this code path in line with
`FlowIORequest.WaitForLedgerCommit`.

Random `DoRemainingWork` events can now be pushed to the fiber's queue
without causing the `FlowIORequest.ExecuteAsyncOperation` to execute
again.
2020-03-20 19:02:34 +00:00
Dimitris Gounaris
62e45c3a14
Bump dependx to 0.1.13 (#6086)
Co-authored-by: Dimitris Gounaris <dimitrisgounaris@20LDN-MAC257.local>
2020-03-20 16:09:57 +00:00
Dan Newton
937f12f966
Merge pull request #6084 from corda/os_4.5-feature_checkpoint_table_improvements-merge
[NOTICK] OS 4.5 to feature/checkpoint_table_improvements merge
2020-03-20 11:23:53 +00:00
Kyriakos Tharrouniatis
da320514a5 Merge branch 'release/os/4.5' into os_4.5-feature_checkpoint_table_improvements-merge
# Conflicts:
#	node/src/main/kotlin/net/corda/node/services/statemachine/transitions/StartedFlowTransition.kt
2020-03-19 21:49:55 +00:00
Dan Newton
1c7126afb7
NOTICK Rename rpc_user column to started_by in metadata table (#6081) 2020-03-19 16:07:00 +00:00
Christian Sailer
82d9995717
ENT-5109 Harmonize config-common, make everything compile again and harmonize NetworkParameterOverridesSpec. (#6082) 2020-03-19 15:43:08 +00:00
Chris Rankin
dd7852f2b8
CORDA-3668: Prevent AttachmentURLConnection from assigning ALL_PERMISSIONS. (#6080)
* CORDA-3668: Prevent AttachmentURLConnection from assigning ALL_PERMISSIONS to classes inside an attachment.

* Strengthen the comment warning about AttachmentURLConnection.getPermission.
2020-03-19 11:20:53 +00:00
Dimos Raptis
56067acd20
[CORDA-3628] - Remove overloads for sendAll (#6078) 2020-03-18 14:37:04 +00:00
Chris Rankin
29a36c6b4f
Prevent Quasar from instrumenting classes that belong to AttachmentsClassLoader. (#6077) 2020-03-18 13:59:10 +00:00
Dan Newton
fb64e47326
NOTICK Increase timeouts in external operation tests (#6076)
* NOTICK Increase timeouts in external operation tests

It seems these tests are timing out when they shouldn't be when running
on the CI servers.

To resolve this, the timeouts of `getOrThrow` calls have been increased
to a minute.

Reliance on timeouts has also been reduced through using locks. This
should speed up tests that don't need to wait for the timeout anymore to
 progress.

* NOTICK Remove hospital checking code

* NOTICK Change locking code
2020-03-18 13:56:51 +00:00