You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@daffodil.apache.org by "Michael Beckerle (JIRA)" <ji...@apache.org> on 2018/10/23 13:08:00 UTC
[jira] [Commented] (DAFFODIL-1282) Abort: Invariant broken when
parser is fed random junk
[ https://issues.apache.org/jira/browse/DAFFODIL-1282?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16660624#comment-16660624 ]
Michael Beckerle commented on DAFFODIL-1282:
--------------------------------------------
See also DAFFODIL-1602 about adding fuzz testing
> Abort: Invariant broken when parser is fed random junk
> -------------------------------------------------------
>
> Key: DAFFODIL-1282
> URL: https://issues.apache.org/jira/browse/DAFFODIL-1282
> Project: Daffodil
> Issue Type: Bug
> Components: General
> Reporter: Jessie Chab
> Priority: Major
>
> I attempted to parse a file that I had accidentally overwritten with a saved parser. I got the following error:
> edu.illinois.ncsa.daffodil.exceptions.Abort: Invariant broken. Unsupported conversion to Long. (null,null) of type Tuple2
> edu.illinois.ncsa.daffodil.exceptions.Assert$.abort(Assert.scala:107)
> edu.illinois.ncsa.daffodil.exceptions.Assert$.invariantFailed(Assert.scala:148)
> edu.illinois.ncsa.daffodil.dpath.AsIntConverters$.asLong(AsIntConverters.scala:90)
> edu.illinois.ncsa.daffodil.processors.SpecifiedLengthExplicitBytesParser.getLength(SpecifiedLength.scala:314)
> at edu.illinois.ncsa.daffodil.exceptions.Assert$.abort(Assert.scala:107)
> at edu.illinois.ncsa.daffodil.exceptions.Assert$.invariantFailed(Assert.scala:148)
> at edu.illinois.ncsa.daffodil.dpath.AsIntConverters$.asLong(AsIntConverters.scala:90)
> at edu.illinois.ncsa.daffodil.processors.SpecifiedLengthExplicitBytesParser.getLength(SpecifiedLength.scala:314)
> at edu.illinois.ncsa.daffodil.processors.SpecifiedLengthExplicitBytesParser$$anonfun$parse$8.apply(SpecifiedLength.scala:322)
> at edu.illinois.ncsa.daffodil.processors.SpecifiedLengthExplicitBytesParser$$anonfun$parse$8.apply(SpecifiedLength.scala:319)
> at edu.illinois.ncsa.daffodil.processors.WithParseErrorThrowing$class.withParseErrorThrowing(ParseErrors.scala:217)
> at edu.illinois.ncsa.daffodil.processors.SpecifiedLengthParserBase.withParseErrorThrowing(SpecifiedLength.scala:166)
> at edu.illinois.ncsa.daffodil.processors.SpecifiedLengthExplicitBytesParser.parse(SpecifiedLength.scala:319)
> at edu.illinois.ncsa.daffodil.processors.Parser.parse1(Parser.scala:90)
> at edu.illinois.ncsa.daffodil.processors.StatementElementParserBase$$anonfun$9.apply(ElementCombinator1.scala:131)
> at edu.illinois.ncsa.daffodil.processors.StatementElementParserBase$$anonfun$9.apply(ElementCombinator1.scala:130)
> at scala.Option.map(Option.scala:145)
> at edu.illinois.ncsa.daffodil.processors.StatementElementParserBase.parse(ElementCombinator1.scala:130)
> at edu.illinois.ncsa.daffodil.processors.Parser.parse1(Parser.scala:90)
> at edu.illinois.ncsa.daffodil.processors.parsers.Rep$.loopExactlyTotalN(RepParsers.scala:104)
> at edu.illinois.ncsa.daffodil.processors.parsers.RepExactlyTotalOccursCountParser.parseAllRepeats(RepParsers.scala:311)
> at edu.illinois.ncsa.daffodil.processors.parsers.RepParser.parse(RepParsers.scala:76)
> at edu.illinois.ncsa.daffodil.processors.Parser.parse1(Parser.scala:90)
> at edu.illinois.ncsa.daffodil.processors.SeqCompParser$$anonfun$parse$2.apply(Parser.scala:171)
> at edu.illinois.ncsa.daffodil.processors.SeqCompParser$$anonfun$parse$2.apply(Parser.scala:169)
> at scala.collection.immutable.List.foreach(List.scala:318)
> at edu.illinois.ncsa.daffodil.processors.SeqCompParser.parse(Parser.scala:169)
> at edu.illinois.ncsa.daffodil.processors.Parser.parse1(Parser.scala:90)
> at edu.illinois.ncsa.daffodil.processors.parsers.ArrayCombinatorParser.parse(ElementKindParsers.scala:85)
> at edu.illinois.ncsa.daffodil.processors.Parser.parse1(Parser.scala:90)
> at edu.illinois.ncsa.daffodil.processors.SeqCompParser$$anonfun$parse$2.apply(Parser.scala:171)
> at edu.illinois.ncsa.daffodil.processors.SeqCompParser$$anonfun$parse$2.apply(Parser.scala:169)
> at scala.collection.immutable.List.foreach(List.scala:318)
> at edu.illinois.ncsa.daffodil.processors.SeqCompParser.parse(Parser.scala:169)
> at edu.illinois.ncsa.daffodil.processors.Parser.parse1(Parser.scala:90)
> at edu.illinois.ncsa.daffodil.processors.parsers.SequenceCombinatorParser.parse(ElementKindParsers.scala:69)
> at edu.illinois.ncsa.daffodil.processors.Parser.parse1(Parser.scala:90)
> at edu.illinois.ncsa.daffodil.processors.parsers.ComplexTypeParser.parse(ElementKindParsers.scala:55)
> at edu.illinois.ncsa.daffodil.processors.Parser.parse1(Parser.scala:90)
> at edu.illinois.ncsa.daffodil.processors.StatementElementParserBase$$anonfun$9.apply(ElementCombinator1.scala:131)
> at edu.illinois.ncsa.daffodil.processors.StatementElementParserBase$$anonfun$9.apply(ElementCombinator1.scala:130)
> at scala.Option.map(Option.scala:145)
> at edu.illinois.ncsa.daffodil.processors.StatementElementParserBase.parse(ElementCombinator1.scala:130)
> at edu.illinois.ncsa.daffodil.processors.Parser.parse1(Parser.scala:90)
> at edu.illinois.ncsa.daffodil.processors.DataProcessor$$anonfun$parse$3$$anon$1.liftedTree1$1(Runtime.scala:212)
> at edu.illinois.ncsa.daffodil.processors.DataProcessor$$anonfun$parse$3$$anon$1.<init>(Runtime.scala:211)
> at edu.illinois.ncsa.daffodil.processors.DataProcessor$$anonfun$parse$3.apply(Runtime.scala:208)
> at edu.illinois.ncsa.daffodil.processors.DataProcessor$$anonfun$parse$3.apply(Runtime.scala:207)
> at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
> at edu.illinois.ncsa.daffodil.ExecutionMode$$anonfun$usingRuntimeMode$1.apply(ExecutionMode.scala:80)
> at edu.illinois.ncsa.daffodil.ExecutionMode$$anonfun$usingRuntimeMode$1.apply(ExecutionMode.scala:80)
> at edu.illinois.ncsa.daffodil.processors.DataProcessor.parse(Runtime.scala:207)
> at edu.illinois.ncsa.daffodil.processors.DataProcessor.parse(Runtime.scala:171)
> at edu.illinois.ncsa.daffodil.Main$$anonfun$71.apply(Main.scala:685)
> at edu.illinois.ncsa.daffodil.Main$$anonfun$71.apply(Main.scala:683)
> at edu.illinois.ncsa.daffodil.util.Timer$.getTimeResult(Timer.scala:91)
> at edu.illinois.ncsa.daffodil.util.Timer$.getResult(Timer.scala:50)
> at edu.illinois.ncsa.daffodil.Main$.run(Main.scala:682)
> at edu.illinois.ncsa.daffodil.Main$.main(Main.scala:1067)
> at edu.illinois.ncsa.daffodil.Main.main(Main.scala)
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)