When testing on the performance machine, this error is coming up a lot. It doesn't happen every time but happens pretty often and with different data types, number of threads, etc. I have not been able to reproduce this locally yet.
Command:
~/daffodil/daffodil-cli/target/universal/stage/bin/daffodil performance -s ~/daffodil/daffodil-examples/src/test/resources/edu/illinois/ncsa/daffodil/csv/csv.dfdl.xsd -t 10 -N 20000 ~/daffodil/daffodil-examples/src/test/resources/edu/illinois/ncsa/daffodil/csv/simpleCSV
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! An unexpected exception occurred. This is a bug! !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Please report this bug and help us fix it:
https://opensource.ncsa.illinois.edu/confluence/display/DFDL/How+to+Report+a+Bug
Please include the following exception, the command you
ran, and any input, schema, or tdml files used that led
to this bug.
edu.illinois.ncsa.daffodil.exceptions.Abort: Invariant broken. Pool MarkPool leaked 2 instance(s).
edu.illinois.ncsa.daffodil.exceptions.Assert$.abort(Assert.scala:121)
edu.illinois.ncsa.daffodil.exceptions.Assert$.invariantFailed(Assert.scala:167)
edu.illinois.ncsa.daffodil.util.Pool$class.finalCheck(Pool.scala:49)
edu.illinois.ncsa.daffodil.io.MarkPool.finalCheck(ByteBufferDataInputStream.scala:216)
at edu.illinois.ncsa.daffodil.exceptions.Assert$.abort(Assert.scala:121)
at edu.illinois.ncsa.daffodil.exceptions.Assert$.invariantFailed(Assert.scala:167)
at edu.illinois.ncsa.daffodil.util.Pool$class.finalCheck(Pool.scala:49)
at edu.illinois.ncsa.daffodil.io.MarkPool.finalCheck(ByteBufferDataInputStream.scala:216)
at edu.illinois.ncsa.daffodil.io.ByteBufferDataInputStream.validateFinalStreamState(ByteBufferDataInputStream.scala:746)
at edu.illinois.ncsa.daffodil.processors.DataProcessor.edu$illinois$ncsa$daffodil$processors$DataProcessor$$doParse(Runtime.scala:275)
at edu.illinois.ncsa.daffodil.processors.DataProcessor$$anonfun$parse$1.apply(Runtime.scala:211)
at edu.illinois.ncsa.daffodil.processors.DataProcessor$$anonfun$parse$1.apply(Runtime.scala:204)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
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:204)
at edu.illinois.ncsa.daffodil.processors.DataProcessor.parse(Runtime.scala:187)
at edu.illinois.ncsa.daffodil.Main$$anonfun$69$$anonfun$70$$anonfun$71$$anonfun$73.apply(Main.scala:874)
at edu.illinois.ncsa.daffodil.Main$$anonfun$69$$anonfun$70$$anonfun$71$$anonfun$73.apply(Main.scala:874)
at edu.illinois.ncsa.daffodil.util.Timer$.getTimeResult(Timer.scala:91)
at edu.illinois.ncsa.daffodil.Main$$anonfun$69$$anonfun$70$$anonfun$71.apply(Main.scala:874)
at edu.illinois.ncsa.daffodil.Main$$anonfun$69$$anonfun$70$$anonfun$71.apply(Main.scala:870)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)