Commit Graph

9665 Commits

Author SHA1 Message Date
0771a22d5b ENT-4967: Allow quasar_classifier to be either null or an empty string. (#6119) 2020-03-31 15:32:36 +01:00
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
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
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
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
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
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
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
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
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
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
6baa775e23 Merge branch 'release/os/4.5' into os_4.5-feature_checkpoint_table_improvements-merge 2020-03-26 11:37:00 +00:00
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
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
d77c524381 Merge pull request #6103 from corda/dan/backport-corda-3677
Backport CORDA-3677
2020-03-26 10:48:28 +00:00
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
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
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
b1180b467b ENT-4659: Remove CryptoServiceFactory from OS 2020-03-25 12:56:33 +00:00
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
b73a498062 [ENT-4754] - Move subflow preparation logic in FlowStateMachine 2020-03-25 09:02:14 +00:00
c697b5850b [EG-896] Additional uniqueness provider test cases (#6085) 2020-03-24 11:10:27 +00:00
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
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
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
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
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
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
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
1c7126afb7 NOTICK Rename rpc_user column to started_by in metadata table (#6081) 2020-03-19 16:07:00 +00:00
82d9995717 ENT-5109 Harmonize config-common, make everything compile again and harmonize NetworkParameterOverridesSpec. (#6082) 2020-03-19 15:43:08 +00:00
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
56067acd20 [CORDA-3628] - Remove overloads for sendAll (#6078) 2020-03-18 14:37:04 +00:00
29a36c6b4f Prevent Quasar from instrumenting classes that belong to AttachmentsClassLoader. (#6077) 2020-03-18 13:59:10 +00:00
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
f9ccb88fea ENT-4494 Harmonize Kryo serialalization (#6069)
* Harmonize Kryo serialalization (Custom serializer for iterators/collections)

* Fix package name

* Revert checkpoint compression change.

* Clean imports
2020-03-18 09:37:56 +00:00
ca23612fe1 CORDA-3596 Record flow metadata (#6067)
* CORDA-3596 Record flow metadata

Record flow metadata during the zero'th checkpoint that occurs before
calling the flow's `call` function.

This required adding an RPC call's arguments to the `InvocationContext`
that gets created. These arguments are then accessible within the
statemachine and from the `Checkpoint` class. The arguments are then
extracted when recording a flow's metadata inside of
`DBCheckpointStorage`.

Updated the size of the started by column to 128 since it was not long
enough to hold the fully qualified class of a service that started a
flow.

* CORDA-3596 Remove arguments from in-memory checkpoint

When executing a flows first real suspend (from flow code) the arguments
 contained in the `InvocationContext` are removed. This saves holding
 these arguments for the whole lifecyle of a flow.

* CORDA-3596 Increase `cordapp_name` column to 128

* CORDA-3596 Join metadata by `flow_id`

Due to changes in where metadata is recorded, there is no need for
having `invocation_id` as the metadata table's primary key. The
`flow_id` is now the primary key of the table and is used to join to the
 main checkpoints table.

The `invocation_id` has been removed from the checkpoints table since it
 is not needed for the join anymore.

* CORDA-3596 Remove `received_time` from metadata table

* CORDA-3596 Remove unused `StartReason` enum

* CORDA-3596 Simple `DBCheckpointStorageTests` for metadata

* CORDA-3596 Truncate really long flow names
2020-03-17 17:28:32 +00:00
349bd5a511 CORDA-3662: Use an INNER JOIN for network map cache queries, (#6062)
- rename add or update function for clarity
- put removal of old nodes after retrieval of new ones to avoid gaps in the map
- plus add a test
2020-03-17 17:02:08 +00:00
2c10b6c3b9 Merge pull request #6075 from corda/jzd/os4.4-to-os4.5-merge-2020-03-17
OS 4.4 to OS 4.5 merge 2020-03-17
2020-03-17 17:00:59 +00:00
eba113621c [CORDA-3628] - Avoid sending actions to the state machine if no messages are to be sent (#6074) 2020-03-17 16:51:07 +00:00
9b6d2cd979 Merge remote-tracking branch 'origin/release/os/4.4' into jzd/os4.4-to-os4.5-merge-2020-03-17 2020-03-17 14:37:50 +00:00
861b769499 NOTICK Update release-notes about database transaction limitations (#6052)
* NOTICK Update release-notes about database transaction limitations
2020-03-17 13:55:10 +00:00
4c6d87d9fb Merge pull request #6058 from corda/dan/merge-4.5-into-feature-branch
Dan/merge 4.5 into feature branch
2020-03-17 09:12:18 +00:00
f476c1581d CORDA-3377: Upgrade to DJVM 1.0. (#6071) 2020-03-17 08:48:45 +00:00
944fbce740 Merge branch 'feature/checkpoint_table_improvements' into dan/merge-4.5-into-feature-branch 2020-03-16 15:38:14 +00:00
121c789c59 CORDA-3655 Do not run COMPLETED, FAILED or KILLED flows on node startup (#6070)
* CheckpointStorage.getAllCheckpoints will not fetch COMPLETED, FAILED and KILLED flows by default

* Rename getAllCheckpoints to getAllRunnableCheckpoints for clarity

* Fix Detekt issue

* Rename getAllRunnableCheckpoints to getRunnableCheckpoints

* Minor kdoc update

* Bring back in CheckpointStorage.getAllCheckpoints to co-exist with getRunnableCheckpoints
2020-03-16 15:25:36 +00:00
9495efc50c Updates DJVM docs. (#6043) 2020-03-16 12:27:55 +00:00
80cf34b81a Merge pull request #6065 from corda/chrisr3-no-location
NOTICK: Prevent learning the location of a Class inside sandbox.
2020-03-16 10:11:38 +00:00
1025ee1dee CORDA-3599 Add progress tracker information to checkpoint (#6063)
* Add progress tracker information to checkpoint

The checkpoint Datebase is updated when the statemachine suspends
with the progress trackers current step name. This is truncated if
it is longer than the Database column.

* Minor rename in statemachine for clarity
2020-03-16 09:30:23 +00:00
8941cf7b8f Merge branch 'feature/checkpoint_table_improvements' into dan/merge-4.5-into-feature-branch
# Conflicts:
#	node/src/test/kotlin/net/corda/node/services/statemachine/FlowFrameworkTests.kt
2020-03-13 14:29:18 +00:00