You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by "Steve Lawrence (Jira)" <ji...@apache.org> on 2023/02/03 16:08:00 UTC

[jira] [Commented] (DAFFODIL-2785) Abort: Usage error: startBitAddress0b.>=(0) in from DataLocation.bytePos1b after parsing large GIF

    [ https://issues.apache.org/jira/browse/DAFFODIL-2785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17683938#comment-17683938 ] 

Steve Lawrence commented on DAFFODIL-2785:
------------------------------------------

Looking at the backtrace and code it's not clear how Daffodil is getting into the state. Seems it happens when the data location is negative which should never be the case. Must be a bug somewhere. Can you provide a test image that reproduces the failure?

> Abort: Usage error: startBitAddress0b.>=(0) in from DataLocation.bytePos1b after parsing large GIF
> --------------------------------------------------------------------------------------------------
>
>                 Key: DAFFODIL-2785
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2785
>             Project: Daffodil
>          Issue Type: Bug
>    Affects Versions: 3.3.0
>         Environment: RHEL7
>            Reporter: Lara Blatchford
>            Priority: Major
>         Attachments: dfdlconvertapp.zip
>
>
> Abort occurs when calling DataLocation.bytePos1b on the DataLocation object returned by ParseResult.location.  
> org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:137)
> org.apache.daffodil.io.DataDumper.convertBitsToBytesUnits(Dump.scala:64)
> org.apache.daffodil.processors.DataLoc.x$1$lzycompute(DataLoc.scala:78)
> org.apache.daffodil.processors.DataLoc.x$1(DataLoc.scala:78)
>         at org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:137)
>         at org.apache.daffodil.io.DataDumper.convertBitsToBytesUnits(Dump.scala:64)
>         at org.apache.daffodil.processors.DataLoc.x$1$lzycompute(DataLoc.scala:78)
>         at org.apache.daffodil.processors.DataLoc.x$1(DataLoc.scala:78)
>         at org.apache.daffodil.processors.DataLoc.bytePos0b$lzycompute(DataLoc.scala:78)
>         at org.apache.daffodil.processors.DataLoc.bytePos0b(DataLoc.scala:78)
>         at org.apache.daffodil.processors.DataLoc.bytePos1b$lzycompute(DataLoc.scala:79)
>         at org.apache.daffodil.processors.DataLoc.bytePos1b(DataLoc.scala:79)
>         at org.apache.daffodil.japi.DataLocation.bytePos1b(Daffodil.scala:511)
>  
> This has been observed with large NITF, GIF and PNG files.
> The attached test app demonstrates the behavior when run as:
> java -d64 dfdl.test.api.dfdl.app.DfdlConverterApp \-schema gif.dfdl.xsd \-input GIF-TEST-IMAGE.gif -output out.xml -format xml
> GIF-TEST-IMAGE.gif is too large to attach but can be provided 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)