Uploaded image for project: 'Daffodil'
  1. Daffodil
  2. DFDL-1672

Expression failures lead to MarkPool leak

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.0.0
    • Component/s: Back End
    • Labels:
      None

      Description

      Assume we have an expression like so

      { xs:int(../foo) eq 5 }

      . Assume the value of ../foo is a string that cannot be converted to an int. This will fail at runtime and create an ExpressionEvaluationException processing error and set it in the PState. However, the if the

      def evaluate

      function results in a failure, it throws the processing error. Parsers do not expect ProcessingErrors to be thrown, so it is possible that this thrown Processing Error results could cause MarkPool's to not be discarded and leaked. This in turn hides the processing error so we do not even know the cause of the error.

      Processing Errors shouldn't be thrown, so we may need to refactor how expressions are handled so they do not require thrown exceptions.

        Gliffy Diagrams

          Attachments

            Activity

              People

              Assignee:
              dthompson David Thompson
              Reporter:
              slawrence Steve Lawrence
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - Not Specified
                  Not Specified
                  Logged:
                  Time Spent - 16 minutes
                  16m

                    Tasks