Commit Graph

8452 Commits

Author SHA1 Message Date
LankyDan
944fbce740 Merge branch 'feature/checkpoint_table_improvements' into dan/merge-4.5-into-feature-branch 2020-03-16 15:38:14 +00:00
Kyriakos Tharrouniatis
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
williamvigorr3
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
LankyDan
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
Kyriakos Tharrouniatis
0174d996bd
CORDA-3598 Set Checkpoint.status to RUNNABLE (#6019)
* Set/ Reset Checkpoint.status to RUNNABLE after when suspending

* Removing/ Moving comment as it makes no longer sense to be there since, we now always create a new Checkpoint object in SingleThreadedStateMachineManager.createFlowFromCheckpoint through tryDeserializeCheckpoint

* Set -in memory- Checkpoint.status to RUNNABLE when a flow is retrying from Checkpoint
2020-03-12 17:57:35 +00:00
williamvigorr3
499b6cf17e
CORDA-3603 Save completed flow information (#6034)
When a flow is finished do not delete the checkpoint from the DB.

Instead, the FlowStatus is marked as Completed in the DB.

Updated numerous tests which relied on the flow being removed
when finished.
2020-03-12 11:45:30 +00:00
LankyDan
ac3f880ae4 Merge branch 'release/os/4.5' into dan/merge-4.5-into-feature-branch
# Conflicts:
#	node/src/main/kotlin/net/corda/node/services/statemachine/transitions/StartedFlowTransition.kt
2020-03-12 08:56:59 +00:00
Dimitris Gounaris
67e3e09a4e
TM-209: Dependx introduction for test running optimization (#6036)
* Add dependx step to build, in monitor state

* Bump plugin version

* Update plugin version

Co-authored-by: Dimitris Gounaris <dimitrisgounaris@20LDN-MAC257.local>
2020-03-11 10:51:38 +00:00
williamvigorr3
51db2c2d7f
CORDA-3600 Add flowIO request to checkpoint (#6017)
* Update Checkpoint DB to update flow io request

* Modify flow monitor to update Checkpoint DB with waiting flows

This happens periodically.

* Refactored code to avoid looping twice and updated tests

* Fix tests after rebasing

* Fix MR comments (non-functional refactor of tests + FlowMonitor).

* Made visible for testing method private in DBCheckpointStorage

This is not needed anymore.

* Explicity check if ioRequestType has changed in update method

* Fix shadowing warning

* Import non deprecated Assert into test

* Use AssertEquals not assert in test

* Address more comments (minor refactor) of DBCheckpointStorage

* Minor fix use it instead of referencing object explicitly

* Add null check to DBCheckpointStorage

* Revert changes to Flow Monitor.

We will instead store the information in the main thread of the
state machine.

* Remove now uneeded API and make statemachine update ioRequest

* Add Integration Test to check statemachine updates DB on Recieve

* Use simpleName in checkpoint storage instead of class.

Hibernate was previously resetting the class field this is now
set to null (when getting checkpoint form DB) and a new method
for getting back the simple name as a string.

* Update StateMachineState to store simple name.

* Fix after rebase broke stuff + renamed test

* Fix Detekt issue

* Remove uneeded null assertion
2020-03-10 15:46:37 +00:00
Christian Sailer
68bb7a0e7b
Merge pull request #6047 from corda/chrisr3-core-testing
CORDA-3644: Add Corda-Testing tag to core-test-utils manifest.
2020-03-10 11:23:51 +00:00
Christian Sailer
ee6d966263
Merge pull request #6046 from corda/jzd/ENT-4334-fix-unit-test
ENT-4334 - Don't stop the node inside the unit test
2020-03-10 10:09:52 +00:00
Chris Rankin
35f7cd349f CORDA-3644: Add Corda-Testing tag to core-test-utils manifest. 2020-03-09 21:26:53 +00:00
Joseph Zuniga-Daly
a18c544de1 Don't stop the node inside the unit test
The test node had not been started and is causing tests to fail.
2020-03-09 17:17:36 +00:00
Dimos Raptis
dcf659e643
[CORDA-3628] - Implement sendAll API (#5990)
* [CORDA-3628] - Implement sendAll API

* detekt

* Some minor refactorings and docs

* Eliminate warnings

* Address Rick's comments

* Switch sendAll to use a set
2020-03-09 17:09:13 +00:00
Walter Oggioni
8ea6564cb9
fixed unformatted and hardcoded link (#6035) 2020-03-09 14:05:28 +00:00
Joseph Zuniga-Daly
217926092d
ENT-4334 Configuration option to exclude packages from Quasar instrumentation (#6005)
* Add quasarExcludePackages configuration option

* Change quasarExcludePackages to quasar.excludePackages

* Add doc comment for QuasarConfiguration

* Use forEach method

* Fix rule violation (TooGenericExceptionThrown)

* Mention new configuration option in changelog

* Remove outer section from new quasarExcludePackages configuration option
2020-03-09 11:40:51 +00:00
Dan Newton
d5e84a4f93
NOTICK Do not cascade checkpoint tables (#6040)
Do not cascade updates to checkpoint error and result tables to hopefully
improve database performance moving forward. Because the joined tables
are no longer being updated by updating the main `DBFlowCheckpoint` entity,
they must be created/updated/deleted manually.

The checkpoint blobs still cascade as they pretty much always evolve in 
tandem with the main checkpoint table.
2020-03-09 10:01:30 +00:00
Matthew Nesbit
2887dd0c88
Merge pull request #6042 from corda/chrisr3-djvm-generics
NOTICK: Better use of generics for DJVM Collection and Map serializers.
2020-03-09 08:56:19 +00:00
Chris Rankin
00b55399cb NOTICK: Better use of generics for DJVM Collection and Map serializers. 2020-03-08 20:14:22 +00:00
nargas-ritu
19eff00b80
Merge pull request #6038 from corda/chrisr3-44-merge
Merge from OS 4.4 -> OS 4.5 up to 5b50ef4
2020-03-06 11:04:10 +00:00
Chris Rankin
493a92ca39 Merge commit '5b50ef49bcca2d1be8bb0604e1be167e3bb5da24' into chrisr3-44-merge 2020-03-06 09:55:00 +00:00
Matthew Nesbit
c65a5cb089
Merge pull request #6030 from corda/chrisr3-44-merge
Merge from OS 4.4 up to bc410b4.
2020-03-06 09:50:39 +00:00
Adel El-Beik
5b50ef49bc
CORDA-3651: addManifest now uses separate files for reading and writing. (#6026)
* CORDA-3651: addManifest now uses separate files for reading and writing.

* CORDA-3651: The jar scanning loader now closes itsself.

Co-authored-by: Adel El-Beik <adelel-beik@19LDN-MAC108.local>
2020-03-06 09:14:36 +00:00
Rick Parker
e5a8888232
CORDA-3644: Add Corda-Testing tag to test artifacts' MANIFEST.MF. (#6032) 2020-03-05 17:39:55 +00:00
Jonathan Locke
60a74c0399
[NOTICK] The list added for Bugs and Storys without Epic link (#6033)
[NOTICK] The list added for Bugs and Storys without Epic link (#6033)
2020-03-05 16:23:08 +00:00
Stefano Franz
c3a59f5293
EG-464 Corda returns incorrect exit code in case if node is started with unknown/missing option (#6010)
* EG-464

Corda returns incorrect exit code in case if node is started with unknown/missing option

* fixed empty else block

* We should not use the parent's exception handler as it will quit and we have our own one

* SampleCordaCliWrapper implemented and tests to verify error handling.

* addressing code review comments
2020-03-05 15:38:56 +00:00
Ritu Gupta
2c2d7e938a [NOTICK] The list added for Bugs and Storys without Epic link 2020-03-05 15:06:20 +00:00
Ritu Gupta
4c944f048c [NOTICK] The list added for Bugs and Storys without Epic link 2020-03-05 12:12:05 +00:00
Chris Rankin
2911548a2e Restore Node's missing dependency on jansi. 2020-03-04 20:56:17 +00:00
Matthew Nesbit
9a406839fa
ENT-4494 split nodeapi tests (#6024)
* Split out node-api tests that require test-utils/node-driver

* Add node-api test artefacts to publication list.

* Make test-common a transient dependency - downstream tests assume that it's available.

* Switch dependencies to java-library

* Fix magic package name for cordapp scanning in test
2020-03-04 17:59:15 +00:00
Chris Rankin
e611064c9e Fix compilation error due to rigorousMock moving into coretesting. 2020-03-04 17:23:41 +00:00
Joseph Zuniga-Daly
e639091626
Delete extra characters at end of key-concepts-ledger.rst (#6028) 2020-03-04 16:40:01 +00:00
Chris Rankin
ffa2caed32 Merge branch 'release/os/4.4' into chrisr3-44-merge 2020-03-04 16:27:44 +00:00
Chris Rankin
bc410b4c99
CORDA-3377: Upgrade to DJVM 1.0-RC10. (#6021) 2020-03-04 16:18:59 +00:00
Andrei Palade
ba68970549
Updated error message to provide consistent logging (#6015) 2020-03-04 11:43:05 +00:00
Chris Rankin
e006b871c8
CORDA-3644: Scan the CorDapp classloader directly for SerializationWhitelist. (#6014)
* CORDA-3644: Scan the CorDapp classloader directly for SerializationWhitelist.

* CORDA-3644: Filter CorDapps from out-of-process node classpaths by their manifest attributes. Also exclude directories and blatant test artifacts.

* Fix IRS Demo - its "tests" artifact had a non-standard classifier of "test".
2020-03-04 10:09:40 +00:00
Stefano Franz
20c5040826
add ability to exit after config generation as is described in the docs (#6023) 2020-03-04 09:52:19 +00:00
Christian Sailer
e38cd9ec63
ENT-5043 separate out test utils (#5998)
* Remove unused dependencies from test-common

* Explicit imports and formatting

* Add core-test-utils project

* Add dependency

* Move Kryo serialization context to node-api (not serialization as we do not want to pull kryo into the serialization lib)

* Move AMQP server serialization scheme to node api

* Move serialization tests to node-api

* Move internal test helpers without further dependencies.

* Move out some types from RPCClientProxyHandler to node-api in preparation for moving the AMQP scheme

* Move client AMQP context to node-api so we can move the test serialization rule out.

* Move InternalSerializationTestHelpers to core-test-utils

* Moved testing.core to core-test-utils

* Make detekt happy

* Add api-scanner to core-test-utils

* Remove inlined package names introduced by IntelliJ refactoring

* Update api-current.txt to account for reordering.

* Add core-test-utils to list of published artifacts.

* Add missing import

* Location of things in api text has moved again (publish name of artefact?)

* Revert all additions to the API, leaving just the reordering

* Code review: fix up core-test-utils build.gradle and introduce kryo version constant.

* Remove OpenSsl flag from ssl config stub (can't be used from node-api)

* Suppress detekt warning

* Move core test util tests to the right module

* Expose kotlin test as a transient dependency - projects have come to rely on that.

* Fix typo in package name
2020-03-03 15:55:17 +00:00
Chris Rankin
fec2ef2fd3
CORDA-3638: Allow CordaFuture to complete even if an Error is thrown. (#5994)
* Allow CordaFuture to complete even if an Error is thrown.

* Allow CordaFuture.flatMap() to notify for failures due to Error.
2020-03-03 15:01:12 +00:00
Adel El-Beik
b86ae0d6a6
Web server fails to connect to node if node takes too long to startup (#6012)
* CORDA-3557: The web server attempts to reconnect to the client for a minute if initial attempt fails.

* CORDA-3557: Fixing detekt issues
2020-03-03 12:10:04 +00:00
Razvan Codreanu
bd197b5229
TM-204 Modifying regression builds to prevent bad dependency graphs (#6013)
* TM-204 attempting to fix regression builds

* TM-204 attempting to fix regression builds

* TM-204 reverting spring boot version and only removing missing dependency

* TM-204 reverting to original build.gradle

* TM-204 re applying dependency

* TM-204 consolidating dependencies

* TM-204 setting spring boot dependency

* TM-204 reverting and upgrading dependency management plugin version in parent gradle file

* TM-204 apply dependency plugin differently

* TM-204 new gradle files

* TM-204 try and fix corda rpc evaluation

* TM-204 try and fix corda rpc evaluation

* TM-204 separate slow integration and smoke test

* TM-204 modifying regression builds to separate slow integration tests and smoke tests as they sometimes result in a bad gradle dependency graph

* TM-204 separating slow integration tests from the rest

* TM-204 change to allow ci03 to run this jenkinsfile

* TM-204 switching to aks label to allow testing on ci03

* TM-204 now that test was successful, switching back to correct prod label
2020-03-03 11:16:37 +00:00
Ramzi El-Yafi
cd6098fd4f
Flag finance library as not for production use in documentation (#6011) 2020-03-03 08:42:10 +00:00
Razvan Codreanu
30167fd2e8
TM-204 Fixing regression builds (#6009)
* TM-204 attempting to fix regression builds

* TM-204 attempting to fix regression builds

* TM-204 reverting spring boot version and only removing missing dependency

* TM-204 reverting to original build.gradle

* TM-204 re applying dependency

* TM-204 consolidating dependencies

* TM-204 setting spring boot dependency

* TM-204 reverting and upgrading dependency management plugin version in parent gradle file

* TM-204 apply dependency plugin differently

* TM-204 new gradle files

* TM-204 try and fix corda rpc evaluation

* TM-204 try and fix corda rpc evaluation

* TM-204 separate slow integration and smoke test
2020-03-02 14:50:01 +00:00
jakubbielawa
da3adb40b4
ENT-5039 Improved help text for commands (#6006)
* Improved help text for commands

* Address feedback
2020-03-02 11:14:55 +00:00
williamvigorr3
ab000e0533
CORDA-3597 Replace old Checkpoint table with new one. (#5992)
* Replace old Checkpoint table with new one.

Adds some of the new fields into the table where needed (I have
guessed this stuff but we can update it as we go along).

* Fix database constraints + name table correctly opps.

* Fixed typos in Liquidbase script

Also corrected constraints and added missed fields in hibernate
checkpoint class and liquibase scripts.

* Update CheckpointStorage to pass in serialization context.

This is cleaner than passing both the checkpoint and the
serialized checkpoint into the methods. Also fixed
CordaPersistanceServiceTests which I accidentally broke.

* Fix detekt problem

* Revert "Update CheckpointStorage to pass in serialization context."

This reverts commit b71e78f202.

* Fix test broken by reverting commit

* CORDA-3597 Update metadata join, timestamp columns and serialization

- Change the metadata join to the checkpoints table to use
  `invocation_id` instead of `flow_id`. There were issues joining
  between the tables because `flow_id` was not the primary key of the
  metadata table. Switching over to `invocation_id` has at least allowed
  us to bypass this issue. The information about the `invocation_id` is
  stored in the `Checkpoint` class which makes it simple to save at
  runtime.
- Some of timestamp columns were nullable when they should always be
  populated, the nullable flags have now been removed.
- Previously the whole checkpoint was being serialized and stored into
  the `checkpoints_blob.checkpoint` column. This meant duplicated saving
  as the `flow_state` was contained in this object. Only the
  `CheckpointState` property of `Checkpoint` is now being serialized and
  saved to this field. Furthermore, it now uses the default
  `STORAGE_CONTEXT` serialization (AMQP) instead of Kryo (which is only
  used for serializing the `flow_state` / flow stack).
- The checkpoint database performance metrics recording has been
  abstracted to its own class.

* CORDA-3597 Make metadata join non optional

Remove the nullable declaration on the metadata field of
`DBFlowCheckpoint`

* CORDA-3597 Rename `node_checkpoints_blobs` to `node_checkpoint_blobs`

* CORDA-3597 Update some kdocs

Co-authored-by: Dan Newton <danknewton@hotmail.com>
2020-03-02 10:04:48 +00:00
Andrei Palade
f6c30453a2
EG-71 - Changed the default file limit in the log4j2 configuration (#5996)
* Changed the default file limit in the log4j2 configuration to address roll over issue described in EG-71

* Updated the default file limit in the comment
2020-03-02 09:26:46 +00:00
pnemeth
d037dc0d06
EG-466 - Fix bug: (#5999)
'shutdown' command is repeated twice in the list of available shell commands.
2020-02-28 12:16:53 +00:00
Joel Dudley
1bf311ce4f
Removes use of notaries.first. (#6008) 2020-02-27 13:27:38 +00:00
nargas-ritu
ae17669892
Merge pull request #5966 from corda/vcamp/os_release_notes_4.4
DOCS: release notes - Corda 4.4
2020-02-27 12:56:50 +00:00
Denis Rekalov
14c73d5f95
Merge pull request #6003 from corda/denis/ENT-4990-amqp-disconnect
ENT-4990: Proper AMQP disconnect handling when remote session was not opened
2020-02-26 11:43:36 +00:00