[ 
https://issues.apache.org/jira/browse/DAFFODIL-2614?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mike Beckerle updated DAFFODIL-2614:
------------------------------------
    Description: 
Got this backtrace below when trying to parse a PCAP 2.4 file. 

This comes from the IPv4Checksum computation, which is a layer transformer 
defined as part of the EthernetIP DFDL schema.

The bug itself is reported against the ethernetIP schema here: 
[https://github.com/DFDLSchemas/ethernetIP/issues/4]

This ticket is about the fact that this bug appears to be a Daffodil bug, when 
it's really part of the schema. 

This exception needs to be caught, so that it can be distinguished from a 
Daffodil bug. This bug is in the layer transformer, and the message should be 
clear about that, and point the user at the schema's layer transformer without 
the user having to interpret the backtrace. 

It should say something like "Exception in layer transformer: %s" and hopefully 
capture the name of the layer transformer and include it as part of the 
message. The backtrace is still useful. It should just not be labeled as a 
Daffodil bug. 

 
{code:java}
cat 'FOUO - BData.pcap' | daffodil parse -s 
../../dataiti/git/dfdl-schemas/dfdl-pcap/src/main/resources/com/tresys/pcap/xsd/pcap.dfdl.xsd
 –
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!   An unexpected exception occurred. This is a bug!   !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 Please report this bug and help us fix it:
  https://daffodil.apache.org/community/#issue-tracker
 Please include the following exception, the command you
 ran, and any input, schema, or tdml files used that led
 to this bug.
org.apache.daffodil.exceptions.Abort: Invariant broken: 
checksumTotal.<=(65535).&&(checksumTotal.>=(0))
org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:137)
com.owlcyberdefense.dfdl.IPv4Checksum.compute(IPv4Checksum.scala:74)
com.owlcyberdefense.dfdl.IPv4Checksum.compute(IPv4Checksum.scala:35)
org.apache.daffodil.layers.ByteBufferExplicitLengthLayerTransform.startLayerForParse(LayerTransformer.scala:361)
    at org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:137)
    at com.owlcyberdefense.dfdl.IPv4Checksum.compute(IPv4Checksum.scala:74)
    at com.owlcyberdefense.dfdl.IPv4Checksum.compute(IPv4Checksum.scala:35)
    at 
org.apache.daffodil.layers.ByteBufferExplicitLengthLayerTransform.startLayerForParse(LayerTransformer.scala:361)
    at 
org.apache.daffodil.processors.parsers.LayeredSequenceParser.parse(LayeredSequenceParser.scala:51)
    at org.apache.daffodil.processors.parsers.Parser.parse1(Parser.scala:82)
    at org.apache.daffodil.processors.parsers.Parser.parse1$(Parser.scala:76)
    at 
org.apache.daffodil.processors.parsers.CombinatorParser.parse1(Parser.scala:161)
    at 
org.apache.daffodil.processors.parsers.Unseparated.parseOne(UnseparatedSequenceParsers.scala:29)
{code}

  was:
Got this backtrace below when trying to parse a PCAP 2.4 file. 

This comes from the IPv4Checksum computation, which is a layer transformer 
defined as part of the EthernetIP DFDL schema.

This exception needs to be caught, so that it can be distinguished from a 
Daffodil bug. This bug is in the layer transformer, and the message should be 
clear about that, and point the user at the schema's layer transformer without 
the user having to interpret the backtrace. 

 

```
 cat 'FOUO - BData.pcap' | daffodil parse -s 
../../dataiti/git/dfdl-schemas/dfdl-pcap/src/main/resources/com/tresys/pcap/xsd/pcap.dfdl.xsd
 --

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!   An unexpected exception occurred. This is a bug!   !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 Please report this bug and help us fix it:

  https://daffodil.apache.org/community/#issue-tracker

 Please include the following exception, the command you
 ran, and any input, schema, or tdml files used that led
 to this bug.


org.apache.daffodil.exceptions.Abort: Invariant broken: 
checksumTotal.<=(65535).&&(checksumTotal.>=(0))
org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:137)
com.owlcyberdefense.dfdl.IPv4Checksum.compute(IPv4Checksum.scala:74)
com.owlcyberdefense.dfdl.IPv4Checksum.compute(IPv4Checksum.scala:35)
org.apache.daffodil.layers.ByteBufferExplicitLengthLayerTransform.startLayerForParse(LayerTransformer.scala:361)
    at org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:137)
    at com.owlcyberdefense.dfdl.IPv4Checksum.compute(IPv4Checksum.scala:74)
    at com.owlcyberdefense.dfdl.IPv4Checksum.compute(IPv4Checksum.scala:35)
    at 
org.apache.daffodil.layers.ByteBufferExplicitLengthLayerTransform.startLayerForParse(LayerTransformer.scala:361)
    at 
org.apache.daffodil.processors.parsers.LayeredSequenceParser.parse(LayeredSequenceParser.scala:51)
    at org.apache.daffodil.processors.parsers.Parser.parse1(Parser.scala:82)
    at org.apache.daffodil.processors.parsers.Parser.parse1$(Parser.scala:76)
    at 
org.apache.daffodil.processors.parsers.CombinatorParser.parse1(Parser.scala:161)
    at 
org.apache.daffodil.processors.parsers.Unseparated.parseOne(UnseparatedSequenceParsers.scala:29)
```


> assert failure in schema-defined layer transform appears to be a Daffodil bug
> -----------------------------------------------------------------------------
>
>                 Key: DAFFODIL-2614
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2614
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Back End
>    Affects Versions: 3.2.1
>            Reporter: Mike Beckerle
>            Priority: Major
>
> Got this backtrace below when trying to parse a PCAP 2.4 file. 
> This comes from the IPv4Checksum computation, which is a layer transformer 
> defined as part of the EthernetIP DFDL schema.
> The bug itself is reported against the ethernetIP schema here: 
> [https://github.com/DFDLSchemas/ethernetIP/issues/4]
> This ticket is about the fact that this bug appears to be a Daffodil bug, 
> when it's really part of the schema. 
> This exception needs to be caught, so that it can be distinguished from a 
> Daffodil bug. This bug is in the layer transformer, and the message should be 
> clear about that, and point the user at the schema's layer transformer 
> without the user having to interpret the backtrace. 
> It should say something like "Exception in layer transformer: %s" and 
> hopefully capture the name of the layer transformer and include it as part of 
> the message. The backtrace is still useful. It should just not be labeled as 
> a Daffodil bug. 
>  
> {code:java}
> cat 'FOUO - BData.pcap' | daffodil parse -s 
> ../../dataiti/git/dfdl-schemas/dfdl-pcap/src/main/resources/com/tresys/pcap/xsd/pcap.dfdl.xsd
>  –
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> !!   An unexpected exception occurred. This is a bug!   !!
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
>  Please report this bug and help us fix it:
>   https://daffodil.apache.org/community/#issue-tracker
>  Please include the following exception, the command you
>  ran, and any input, schema, or tdml files used that led
>  to this bug.
> org.apache.daffodil.exceptions.Abort: Invariant broken: 
> checksumTotal.<=(65535).&&(checksumTotal.>=(0))
> org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:137)
> com.owlcyberdefense.dfdl.IPv4Checksum.compute(IPv4Checksum.scala:74)
> com.owlcyberdefense.dfdl.IPv4Checksum.compute(IPv4Checksum.scala:35)
> org.apache.daffodil.layers.ByteBufferExplicitLengthLayerTransform.startLayerForParse(LayerTransformer.scala:361)
>     at org.apache.daffodil.exceptions.Assert$.abort(Assert.scala:137)
>     at com.owlcyberdefense.dfdl.IPv4Checksum.compute(IPv4Checksum.scala:74)
>     at com.owlcyberdefense.dfdl.IPv4Checksum.compute(IPv4Checksum.scala:35)
>     at 
> org.apache.daffodil.layers.ByteBufferExplicitLengthLayerTransform.startLayerForParse(LayerTransformer.scala:361)
>     at 
> org.apache.daffodil.processors.parsers.LayeredSequenceParser.parse(LayeredSequenceParser.scala:51)
>     at org.apache.daffodil.processors.parsers.Parser.parse1(Parser.scala:82)
>     at org.apache.daffodil.processors.parsers.Parser.parse1$(Parser.scala:76)
>     at 
> org.apache.daffodil.processors.parsers.CombinatorParser.parse1(Parser.scala:161)
>     at 
> org.apache.daffodil.processors.parsers.Unseparated.parseOne(UnseparatedSequenceParsers.scala:29)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to