You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by "Mike Beckerle (Jira)" <ji...@apache.org> on 2022/03/09 22:36:00 UTC
[jira] [Reopened] (DAFFODIL-2626) Circular deadlock when computing stored length around prefixed-length elements
[ https://issues.apache.org/jira/browse/DAFFODIL-2626?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mike Beckerle reopened DAFFODIL-2626:
-------------------------------------
While this change fixed a specific problem, it caused too many regressions of unparser behavior in pre-existing schemas. (DAFFODIL-2666 and DAFFODIL-2662 are regressions).
Note that no Daffodil test detected these regressions, so such a test is needed so that a separate schema isn't needed to reproduce those regressions.
PR for reverting is [https://github.com/apache/daffodil/pull/769]
> Circular deadlock when computing stored length around prefixed-length elements
> ------------------------------------------------------------------------------
>
> Key: DAFFODIL-2626
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2626
> Project: Daffodil
> Issue Type: Bug
> Components: Back End
> Affects Versions: 3.2.1
> Reporter: Mike Beckerle
> Assignee: Steve Lawrence
> Priority: Critical
> Fix For: 3.3.0
>
>
> I have a small schema with a messageLength element as the first element, which has outputValueCalc on the message payload.
> The message payload contains prefixed-length strings.
> I get a deadlock on unparsing:
> {code}
> org.apache.daffodil.tdml.TDMLExceptionImpl: (Implementation: daffodil) SuspensionDeadlockException: Runtime Schema Definition Error: Expressions/Unparsers are circularly deadlocked (mutually defined):
> - SimpleTypeRetryUnparserSuspendableOperation for messageLength
> - ElementUnusedUnparserSuspendableOperation for payload
> - AlignmentFillUnparserSuspendableOperation for address
> Schema context: messageLength Location line 59 column 18 in file:/tmp/s__3044777217024912267.dfdl.xsd
> Data location was preceding byte 0
> {code}
> See test test_computedLengthAroundPrefixedLengths1u
> Test test_computedLengthAroundPrefixedLengths1p is the same thing, just testing the parse direction.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)