Details
-
Bug
-
Resolution: Done
-
Critical
-
7.4
-
None
Description
When a plan can reuse the result buffer, for example with a top level sort operation. Then both the batchcollector and the processingnode may call close on the buffer. The second clause will trigger an assertionerror:
java.lang.AssertionError: Assertion failed.
at org.teiid.core.util.Assertion.failed(Assertion.java:73)
at org.teiid.core.util.Assertion.assertTrue(Assertion.java:68)
at org.teiid.core.util.Assertion.assertTrue(Assertion.java:60)
at org.teiid.common.buffer.TupleBuffer.saveBatch(TupleBuffer.java:177)
at org.teiid.common.buffer.TupleBuffer.close(TupleBuffer.java:192)
at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:352)
at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:278)
at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:49)
at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:207)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:194)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:118)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:288)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)