DCR Solutions defect advisory (defect #129319)
A defect in the DCR Core engine means that from Feb 27, 2021, until June 8, 2021, under the specific circumstances outlined below, activities were incorrectly enabled for execution when they should not have been.
The defect affected the following user-facing DCR Applications in exactly the period Feb 27 (DCR Release 6.1) to June 8 (hot-fix for #129319):
- DCR Portal (simulator, trace validation)
- DCR Active Repository (simulation API)
The defect affected the DCR Core Engine library from 3.6.0 (Feb 10, 2021), through 3.7.2 (May 27, 2021), both inclusive. The defect is fixed in 3.7.3 (June 7, 2021) and deployed june 8, 2021.
It is possible to check automatically whether #129319 has been triggered and activities incorrectly executed. If you have a DCR model and a logfile of executions on that model and need to know whether this bug has allowed incorrect executions, submit the model and logfile to email@example.com and request a check for bug #129319.
The defect occurs exactly under the following circumstances. To be affected by the #129319, a DCR process must contain:
- A nesting N which is marked as “not included” in the portal.
- An activity A located inside that nesting N.
- An activity B which has a condition, milestone, or precondition from A.
- At runtime, A must be in such a state that the rule in step 3 inhibits B from execution.
(condition: A is effectively included and not executed.
milestone: A is effectively included and pending
precondition A: either of the above)
A simple example DCR process model can be found here.
Under these circumstances, B will be enabled for execution in violation of DCR semantics.
A quick way to verify that a DCR model is not affected is to use the portal to check for each nesting in the model whether it is marked as “included” in the portal. If they all are, the modelis not affected by #129319.