Commit Graph

9665 Commits

Author SHA1 Message Date
c5134d5762 update docker version (#6215)
corda-zulu-java1.8-4.4
2020-06-10 08:17:50 +01:00
0ac6371e97 Merge pull request #6328 from corda/christians/NOTICK-merge-OS-4.5-4.6
NOTICK merge removal of example-code
2020-06-09 21:20:36 +01:00
640f83429a Merge commit '550b446' into christians/NOTICK-merge-OS-4.5-4.6 2020-06-09 17:50:05 +01:00
550b446b87 NOTICK Remove example code (#6327)
* Remove example code
2020-06-09 17:39:51 +01:00
785715106b ENT-5379 Reconnecting RPC fixed to recognize shutdown calls and break reconnect attempts (#6316) 2020-06-08 18:03:02 +01:00
d2dd461960 Merge pull request #6319 from corda/ramzi/45-46-merge
[NOTICK] OS 4.5 -> 4.6 merge 20200608
2020-06-08 14:15:31 +01:00
b43b34a94b Merge remote-tracking branch 'origin/release/os/4.5' into ramzi/45-46-merge 2020-06-08 09:37:50 +01:00
c897280143 Merge pull request #6317 from corda/ramzi/44-45-merge
OS 4.4 -> 4.5 merge 20200605
2020-06-05 17:32:05 +01:00
40a29869c2 Merge remote-tracking branch 'origin/release/os/4.4' into ramzi/44-45-merge 2020-06-05 15:27:34 +01:00
cf8cd8e004 INFRA-348 JDK 11 Compatibility job migration (#6311) 2020-06-05 15:20:03 +01:00
4a54ae5eb9 ENT-4493 schema migration refactor (#6313)
ENT-4493 Refactor SchemaMigration so it can be open harmonised with Enterprise and can be customised.
2020-06-05 12:11:45 +01:00
5cd439953d Merge pull request #6314 from corda/razvan-os-4.5-to-4.6-merge
NOTICK OS 4.5 -> OS 4.6 merge
2020-06-05 11:43:59 +01:00
5f6f36712f INFRA-381 correctly merged jenkinsfile 2020-06-05 07:56:37 +01:00
fb184839f4 Merge branch 'release/os/4.5' of https://github.com/corda/corda into razvan-os-4.5-to-4.6-merge 2020-06-05 07:55:48 +01:00
caf5482244 ENT-4064, ENT-4608 - checking for unsigned cordapps in prod mode and checking the PV (#6291)
* checking for unsigned cordapps in prod mode and shutting down if it the contracts are not signed

* inheriting from CordaRuntimeException instead of Exception

* had the same tests twice, removed the shutdown for minimumplatformversion, modified some of the tests

* shut down when we get invalid platformversion and modified the test according to this

* making the message more accurate
2020-06-04 16:24:49 +01:00
f27240b1ad INFRA-381 Removing sonarqube (#6312) 2020-06-04 15:06:36 +01:00
48cd263d48 Merge pull request #6300 from corda/christians/update-feat-20200502
Update from release/os/4.6
2020-06-04 14:21:29 +01:00
45614cf29e Merge pull request #6266 from corda/denis/CORDA-3805-custom-migration-scripts
CORDA-3805: cut dependency from PersistentIdentityService for custom migration scripts
2020-06-04 14:20:26 +01:00
f0d2c9fe71 NOTICK Correct StatemachineGeneralErrorHandlingtest (#6306) 2020-06-04 08:04:41 +01:00
6ab6099075 [INFRA-368] Add deployNodes and install gradle tasks (#6302) 2020-06-03 14:05:12 +01:00
98f62f60f1 Merge branch 'release/os/4.6' into christians/update-feat-20200502 2020-06-02 18:15:32 +01:00
2cb89897b4 Merge branch 'release/os/4.6' into christians/update-feat-20200502 2020-06-02 17:55:14 +01:00
b8b462f68e NOTICK Fix schema validation error for flow parameters (#6304)
Adding 'corda-blob' type, fixed 'Schema-validation: wrong column type'
2020-06-02 17:52:50 +01:00
0554c98d18 NOTICK Restrict to shell commands (#6303)
Remove shell command for pausing flows
2020-06-02 16:04:10 +01:00
04ddb267fd [EG-2225] Prevent extra directories being created when relative base directories are specified (#6282)
Don't create an extra directory if a relative base path specified
2020-06-02 15:26:40 +01:00
ac9f6fca16 [EG-2148] Small tweak to an error message (#6263) 2020-06-02 13:52:34 +01:00
9c4a76d367 CORDA-3176 Inefficient query generated on vault queries with custom p… (#6241)
* CORDA-3176 Inefficient query generated on vault queries with custom paging

a check added to avoid self joins
local postgres db tests were executed on large volume test data (50k states) to ensure that the DB optimizes the suspicious query and so it does not cuase performance issues.
A test added to check that a pagination query on large volume of sorted data is completed in a reasonable time

* foreach detekt fix
2020-06-02 10:33:59 +01:00
0ed6307577 Merge remote-tracking branch 'origin/release/os/4.6' into christians/update-feat-20200502 2020-06-02 09:03:11 +01:00
eb621dc942 Merge pull request #6298 from corda/ramzi/44-45-merge
OS 4.4 -> 4.5 merge 20200601
2020-06-01 16:23:54 +01:00
98af7f10f9 CORDA-3805: Make custom migration scripts independent on the latest PersistentIdentityService schema 2020-06-01 16:22:21 +01:00
078c4f30fb Merge remote-tracking branch 'origin/release/os/4.4' into ramzi/44-45-merge 2020-06-01 15:12:10 +01:00
14b9bc2c53 throwing clearer error message when not supported 301 response code is used (#6296) 2020-06-01 11:55:17 +01:00
9f2bd1dcae Merge pull request #6295 from corda/feature/checkpoint_table_improvements
CORDA-3432 Feature/checkpoint table improvements
2020-06-01 11:31:13 +01:00
a9b8751ce7 [INFRA-351] Jenkinsfile for code check jobs (#6294) 2020-05-29 13:08:00 +01:00
4507b55857 CORDA-3725 Fix SQL deadlocks coming from soft locking states (#6287)
Adding to the query -explicitly- the flow's locked states resolved the SQL Deadlocks in SQL server. The SQL Deadlocks would come up  from `softLockRelease` when only the `lockId` was passed in as argument. In that case the query optimizer would use `lock_id_idx(lock_id, state_status)` to search and update entries in `VAULT_STATES` table. 

However, all rest of the queries would follow the opposite direction meaning they would use PK's `index(output_index, transaction_id)` but they would also update the `lock_id` column and therefore the `lock_id_idx` as well, because `lock_id` is a part of it. That was causing a circular locking among the different transactions (SQL processes) within the database.

To resolve this, whenever a flow attempts to reserve soft locks using their flow id (remember the flow id is always the flow id for the very first flow in the flow stack), we then save these states to the fiber. Then, upon releasing soft locks the fiber passes that set to the release soft locks query. That way the database query optimizer will use the primary key index of VAULT_STATES table, instead of lock_id_idx in order to search rows to update. That way the query will be aligned with the rest of the queries that are following that route as well (i.e. making use of the primary key), and therefore its locking order of resources within the database will be aligned with the rest queries' locking orders (solving SQL deadlocks).

* Fixed SQL deadlocks caused from softLockRelease, by saving locked states per fiber; NodeVaultService.softLockRelease query then uses VAULT_STATES PK index instead of lock_id_idx

Speed up SQL server by breaking down queries with > 16 elements in their IN clause, into sub queries with 16 elements max in their IN clauses

* Allow softLockedStates to remove states

* Add to softLockedStates only states soft locked under our flow id

* Fix softLockRelease not to take into account flowStateMachineImpl.softLockedStates when using lockId != ourFlowId

* Moved CriteriaBuilder.executeUpdate at the bottom of the file
2020-05-29 12:35:05 +01:00
ef3270e32c [INFRA-352] Artifactory publication in Jenkins (#6276) (#6290)
* [INFRA-352] Artifactory publication in Jenkins

* Address review comments
2020-05-28 22:34:37 +01:00
6c9917a75d Merge pull request #6292 from corda/nnagy-os-4.5-os-4.6-20200528
Nnagy os 4.5 os 4.6 20200528
2020-05-28 17:41:18 +01:00
499c09e77b Merge pull request #6285 from corda/denis/CORDA-3818-sync-identity-service
CORDA-3818: Synchronize OS implementation of PublicKeyToOwningIdentityCache with CE
2020-05-28 14:21:04 +01:00
7f8e590a5d Merge branch 'release/os/4.5' into nnagy-os-4.5-os-4.6-20200528 2020-05-28 11:22:04 +01:00
598228634f CORDA-3608 Performance tune the new checkpoint schema (#6277)
Performance tuning of the new checkpoint schema;

- Checkpoint tables are now using `flowId` as join keys. 
- Indexes consist of a PK's index on `node_checkpoints(flow_id)` and then unique indexes on `node_checkpoint_blobs(flow_id)` and `node_flow_metadata(flow_id)`.
- Serialization of `checkpointState` is being done with `CHECKPOINT_CONTEXT` so that we can have compression. This is needed when messages get passed into `checkpointState.sessions` therefore `checkpointState` grows in size upon serialized and 
saved into the database.

* Deserialize checkpointState with CHECKPOINT_CONTEXT

* Align tests with schema update; We cannot add and update a checkpoint in the same session now, ends up with hibernate complaining: two different objects with same identifier

* Fix indentation and format

* Ignore tests that assert DBFlowResult or DBFlowException

* Set DBFlowCheckpoint.blob to null whenever the flow errors or hospitalizes; this way we save an extra SELECT in such cases;

* Fix test; cleared Hibernate session, it would fail at checkpoint with 'org.hibernate.NonUniqueObjectException'

* Changing VARCHAR to NVARCHAR

* Rename v17 liquibase scripts to v19 to resolve collision with ENT v17 scripts
2020-05-27 16:46:56 +01:00
cfb6c7c56b Merge pull request #6288 from corda/chrisr3-45-merge
Merge from OS 4.5 up to 6ebc6e9
2020-05-27 11:36:41 +01:00
a33309a31b CORDA-3755: Backport AttachmentURLStreamHandlerFactory memory leak (#6274)
* CORDA-3755: Switched attachments map to a WeakHashMap (#6214)

* CORDA-3772: Now specify source and target of 8 when compiling contract classes.

* 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>

Co-authored-by: Adel El-Beik <adelel-beik@19LDN-MAC108.local>
2020-05-27 11:35:15 +01:00
53f9890ef2 Merge pull request #6284 from corda/nnagy-os-4.4-os-4.5-20200526
Nnagy os 4.4 os 4.5 20200526
2020-05-27 10:46:21 +01:00
6e156bc0ea Merge commit '6ebc6e9b16575a7afbb781b0d93a8f04b3affba5' into chrisr3-45-merge 2020-05-27 10:40:36 +01:00
5afdb63c94 CORDA-3818: Synchronize OS implementation of PublicKeyToOwningIdentityCache with CE 2020-05-26 16:10:14 +01:00
6ebc6e9b16 CORDA-3750: Reimplement Corda's Crypto object for use inside the sandbox. (#6193)
* CORDA-3750: Use hand-written sandbox Crypto object that delegates to the node.

* CORDA-3750: Add integration test for deterministic CashIssueAndPayment flow.

* Tidy up generics for Array instances.

* Upgrade to DJVM 1.1-RC04.
2020-05-26 15:46:29 +01:00
4ed57506c8 [INFRA-352] Artifactory publication in Jenkins (#6276)
* [INFRA-352] Artifactory publication in Jenkins

* Address review comments
2020-05-26 15:26:55 +01:00
330a95cb68 ENT-4627 Log transaction context missing exception (#6278)
When a flow is missing its database transaction the _real_ stacktrace
of the exception is missing in the logs. This is due to the normal error
handling path way does not work due the transaction being missing. When
it goes to process the next error event (due to the original transaction
context missing error) it will fail for the same error as it needs the
context to be able to process the error event.

The extra logging should help diagnose future errors.
2020-05-26 11:32:42 +01:00
3a6b43f9a8 Merge branch 'release/os/4.4' into nnagy-os-4.4-os-4.5-20200526
# Conflicts:
#	node/src/main/kotlin/net/corda/node/services/vault/HibernateQueryCriteriaParser.kt
2020-05-26 10:34:48 +01:00
ad40b6618d Merge pull request #6281 from corda/nnagy-os-4.3-os-4.4-20200522
Nnagy os 4.3 os 4.4 20200522
2020-05-22 17:27:06 +01:00