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

Expression failures lead to MarkPool leak

XMLWordPrintableJSON

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • 2.0.0
    • None
    • Back End
    • None

      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.

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

                Created:
                Updated:
                Resolved:

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