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/02/22 22:39:00 UTC
[jira] [Created] (DAFFODIL-2666) NITF cyclic deadlock regression
Mike Beckerle created DAFFODIL-2666:
---------------------------------------
Summary: NITF cyclic deadlock regression
Key: DAFFODIL-2666
URL: https://issues.apache.org/jira/browse/DAFFODIL-2666
Project: Daffodil
Issue Type: Bug
Components: DFDL Schemas
Affects Versions: 3.3.0
Reporter: Mike Beckerle
The public NITF schema fails.
It gets a bunch of warnings that need to be suppressed via a config file, but it also gets this deadlock:
{code:java}
[error] SuspensionDeadlockException: Runtime Schema Definition Error: Expressions/Unparsers are circularly deadlocked (mutually defined):
[error] - AlignmentFillUnparserSuspendableOperation for choice[1]
[error] - AlignmentFillUnparserSuspendableOperation for sequence[1]
[error] - SuspendableExpression(ImageExtendedSubheaderDataLength, expr={ if (fn:exists(../ImageExtendedSubheaderData)) then dfdl:valueLength(../ImageExtendedSubheaderData[1]/nitf:TaggedRecordExtensions, 'bytes') + 3 else 0 })
[error] - ElementUnusedUnparserSuspendableOperation for UserDefinedData
[error] - target length for Data expr <EvaluatableExpression eName='ImageSegment/Data' expr='{ ../../Header/ImageSegmentLengths[dfdl:occursIndex()]/DataLength }' />
[error] - SuspendableExpression(HeaderLength, expr={ 259 + (if ($nitf:nitfVersion eq '02.00') then dfdl:valueLength(../../../ImageSegment[dfdl:occursIndex()]/Header/ClassificationInformation, 'bytes') else 167) + (60 * fn:count(../../../ImageSegment[dfdl:occursIndex()]/Header/ImageGeographicLocation)) + (80 * fn:count(../../../ImageSegment[dfdl:occursIndex()]/Header/ImageComment)) + (4 * fn:count(../../../ImageSegment[dfdl:occursIndex()]/Header/CompressionRateCode)) + (5 * fn:count(../../../ImageSegment[dfdl:occursIndex()]/Header/NumberOfMultispectralBands)) + (3 * fn:count(../../../ImageSegment[dfdl:occursIndex()]/Header/UserDefinedOverflow)) + (3 * fn:count(../../../ImageSegment[dfdl:occursIndex()]/Header/ImageExtendedSubheaderOverflow)) + (if (fn:exists(../../../ImageSegment[dfdl:occursIndex()]/Header/Bands)) then dfdl:valueLength(../../../ImageSegment[dfdl:occursIndex()]/Header/Bands, 'bytes') else 0) + (if (fn:exists(../../../ImageSegment[dfdl:occursIndex()]/Header/UserDefinedImageData)) then dfdl:valueLength(../../../ImageSegment[dfdl:occursIndex()]/Header/UserDefinedImageData[1], 'bytes') else 0) + (if (fn:exists(../../../ImageSegment[dfdl:occursIndex()]/Header/ImageExtendedSubheaderData)) then dfdl:valueLength(../../../ImageSegment[dfdl:occursIndex()]/Header/ImageExtendedSubheaderData[1], 'bytes') else 0) })
[error] - ElementUnusedUnparserSuspendableOperation for Header
[error] - target length for ImageExtendedSubheaderData expr <EvaluatableExpression eName='ImageSegment/Header/ImageExtendedSubheaderData' expr='{ ../ImageExtendedSubheaderDataLength - 3 }' />
[error] - AlignmentFillUnparserSuspendableOperation for sequence[1]
[error] - SuspendableExpression(DataLength, expr={ dfdl:valueLength(../../../ImageSegment[dfdl:occursIndex()]/Data, 'bytes') })
[error] - AlignmentFillUnparserSuspendableOperation for sequence[1]
[error] Schema context: ImageExtendedSubheaderDataLength Location line 533 column 22 in file:/home/mbeckerle/Documents/dataiti/git/dfdl-regression-test/dfdl-nitf/target/classes/com/tresys/nitf/xsd/nitf.dfdl.xsd
[error] Data location was preceding byte 2337, took 0.313 sec
[error] at org.apache.daffodil.tdml.TDMLException$.apply(TDMLException.scala:33)
[error] at org.apache.daffodil.tdml.ParserTestCase.doOnePassRoundTripUnparseExpectSuccess(TDMLRunner.scala:1146)
[error] at org.apache.daffodil.tdml.ParserTestCase.runParseExpectSuccess(TDMLRunner.scala:1281)
[error] at org.apache.daffodil.tdml.ParserTestCase.$anonfun$runProcessor$2(TDMLRunner.scala:963)
[error] at org.apache.daffodil.tdml.ParserTestCase.$anonfun$runProcessor$2$adapted(TDMLRunner.scala:960)
[error] at scala.util.Either$RightProjection.foreach(Either.scala:652)
[error] at org.apache.daffodil.tdml.ParserTestCase.runProcessor(TDMLRunner.scala:960) {code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)