flow doesn't fall to the hospital in case of node receives untrusted transaction attachments

Description

According to the test steps from https://r3-cev.atlassian.net/browse/R3T-2167
cashPaymentFlow between PartyB and PartyC should be failed for the PartyC with error in the log, like:

  • [INFO ] 2019-02-17T10:11:17,537Z [Node thread-1] corda.flow.run - Flow raised an error... sending it to flow hospital {fiber-id=10000001, flow-id=97562d1d-ae9f-4234-a55a-5d8467e95f5c, invocation_id=00403235-87bf-4349-a3c0-c6d2da508cd0, invocation_timestamp=2019-02-17T10:11:11.296Z, origin=O=PartyB, L=New York, C=US, session_id=00403235-87bf-4349-a3c0-c6d2da508cd0, session_timestamp=2019-02-17T10:11:11.296Z, thread-id=252, tx_id=3A36EF00BDFB43B9C48EE0B121FEBC978671FACA0D743E8ADB55B612D9277C7B}

  • net.corda.core.contracts.TransactionVerificationException$UntrustedAttachmentsException: Attempting to load untrusted transaction attachments: [9499E591C686CC35E5ADDD074EF50E5A5ED377F31DBCE095F230C5CF3A7210CB]. At this time these are not loadable because the DJVM sandbox has not yet been integrated. You will need to install that app version yourself, to whitelist it for use. Please follow the operational steps outlined in https://docs.corda.net/cordapp-build-systems.html#cordapp-contract-attachments to learn more and continue.

Currently flow successfully is accepted by PartyC.

Steps to reproduce:
1. Get from artifactory the following files:
corda-tools-network-bootstrapper-4.3-RC01.jar
corda-finance-contracts-4.3-RC01.jar
corda-finance-workflows-4.3-RC01.jar
corda-confidential-identities-4.3-RC01.jar

2. Clone or download Corda samples from repository (4.3-RC01 branch)
3. Deploy nodes:
4. Delete kotlin-source-0.1.jar from the PartyC cordapps
5. Start up all nodes (PartyA, PartyB, PartyC, Notary)
6. ParyA shell:
-execute follows:

  • flow start CashIssueFlow amount: 101 GBP, issuerBankPartyRef: 1234, notary: "Notary"

  • flow start IssueObligation amount: 100 GBP, lender: "PartyB", anonymous: false

  • run vaultQuery contractStateType: net.corda.examples.obligation.Obligation

  • flow start SettleObligation linearId: "linerId", amount: 100 GBP, anonymous: false

7. PartyB shell:

  • run vaultQuery contractStateType: net.corda.finance.contracts.asset.Cash$State (vault should contain 100 GBP)

  • flow start CashPaymentFlow amount: "100 GBP", recipient: PartyC, anonymous: false (The flow should completes successfully. )

9 PartyC shell:

  • run vaultQuery contractStateType: net.corda.finance.contracts.asset.Cash$State

Expected result:
PartyC vault should be empty
PartyC logs should show an error:

  • [INFO ] 2019-02-17T10:11:17,537Z [Node thread-1] corda.flow.run - Flow raised an error... sending it to flow hospital {fiber-id=10000001, flow-id=97562d1d-ae9f-4234-a55a-5d8467e95f5c, invocation_id=00403235-87bf-4349-a3c0-c6d2da508cd0, invocation_timestamp=2019-02-17T10:11:11.296Z, origin=O=PartyB, L=New York, C=US, session_id=00403235-87bf-4349-a3c0-c6d2da508cd0, session_timestamp=2019-02-17T10:11:11.296Z, thread-id=252, tx_id=3A36EF00BDFB43B9C48EE0B121FEBC978671FACA0D743E8ADB55B612D9277C7B}

  • net.corda.core.contracts.TransactionVerificationException$UntrustedAttachmentsException: Attempting to load untrusted transaction attachments: [9499E591C686CC35E5ADDD074EF50E5A5ED377F31DBCE095F230C5CF3A7210CB]. At this time these are not loadable because the DJVM sandbox has not yet been integrated. You will need to install that app version yourself, to whitelist it for use. Please follow the operational steps outlined in https://docs.corda.net/cordapp-build-systems.html#cordapp-contract-attachments to learn more and continue.

Actual result:
PartyC successfully accepts cashPaymentFlow form PartyB, no errors in the log

Nodes logs and screenshots are attached.

Status

Assignee

Roman Vasiliev

Reporter

Roman Vasiliev

Labels

Priority

Medium

Fix versions

Ported to...

None

Feature Team

Kernel Group

Severity

Medium

Affects versions

Corda 4.3 RC01
Configure