We're updating the issue view to help you get more done. 

AnsiProgressRenderer may start reporting incorrect progress if tree contains identical steps

Description

The ANSIProgressRenderer may fail to display the correct result if the ProgressTracker steps tree contains identical steps. This can happen if a flow executes similar actions more than once by delegating to the same sub flow repeatedly, or if multiple sub flows inherit from a single one defining the progress tracker for both. An example of this situation can be seen in CashIssueAndPaymentFlow.

Current known problems:

  • With CashIssueAndPaymentFlow, some steps in the flow will appear to be completed, before the flow skips backwards again - this happens because after the issuance flow, the payment progress tracker overwrites the issuance tracker. However, as some steps are identical, the renderer fails to clear them. The output is shown in the attachment

  • Attempting to fix the above by introducing intermediate steps doesn't work, as steps are identified by (level, label), and not by index. As there are some (level, label) duplicates, when the step tree changes the renderer cannot establish which steps have been executed and which have not.

Status

Assignee

James Higgs

Reporter

James Higgs

Priority

Medium

Labels

None

Severity

High

Fix versions

Ported to...

None

Feature Team

Corda Core

Affects versions

Corda 4