[teiid-issues] [JBoss JIRA] (TEIID-3267) OPTION NOCACHE causes ConcurrentModificationException

Steven Hawkins (JIRA) issues at jboss.org
Fri Dec 19 11:01:29 EST 2014


     [ https://issues.jboss.org/browse/TEIID-3267?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steven Hawkins resolved TEIID-3267.
-----------------------------------
    Fix Version/s: 8.7.1
                   8.10
       Resolution: Done


I re-did the commit to minimize the duplication in the test code.  Also the root issue is that the option clause was not being cloned by the rewrite logic to create an inline view so that was changed as well.

> OPTION NOCACHE causes ConcurrentModificationException
> -----------------------------------------------------
>
>                 Key: TEIID-3267
>                 URL: https://issues.jboss.org/browse/TEIID-3267
>             Project: Teiid
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: 8.4.3, 8.7.1, 8.9
>            Reporter: Hisanobu Okuda
>            Assignee: Steven Hawkins
>             Fix For: 8.7.1, 8.10
>
>         Attachments: test.csv, test.vdb
>
>
> I have the following virtual procedure.
> {code}
> CREATE VIRTUAL PROCEDURE
> BEGIN
> 	DECLARE string VARIABLES.strSql = 'select v1.id, v2.ccc2 from vvv1.vvv as v1, vvv2.vvv as v2 where v1.id=v2.id option nocache v1';
> 	EXECUTE IMMEDIATE VARIABLES.strSql AS id string, name string;
> END
> {code}
> When I specify no argument for 'option nocache', it works. But, when I specify a view name as an argument for 'option nocache', it throws ConcurrentModificationException.
> {code}
> 17:34:04,285 ERROR [org.teiid.PROCESSOR] (Worker0_QueryProcessorQueue0) TEIID30019 Unexpected exception for request nSVB2nm4gO3M.0: java.util.ConcurrentModificationException
> 	at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859) [rt.jar:1.7.0_45]
> 	at java.util.ArrayList$Itr.next(ArrayList.java:831) [rt.jar:1.7.0_45]
> 	at org.teiid.query.optimizer.relational.RelationalPlanner.generatePlan(RelationalPlanner.java:609) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.optimizer.relational.RelationalPlanner.addNestedCommand(RelationalPlanner.java:1173) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.optimizer.relational.RelationalPlanner.buildTree(RelationalPlanner.java:1071) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.optimizer.relational.RelationalPlanner.createQueryPlan(RelationalPlanner.java:904) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.optimizer.relational.RelationalPlanner.createQueryPlan(RelationalPlanner.java:863) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.optimizer.relational.RelationalPlanner.generatePlan(RelationalPlanner.java:619) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.optimizer.relational.RelationalPlanner.optimize(RelationalPlanner.java:226) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.optimizer.QueryOptimizer.optimizePlan(QueryOptimizer.java:159) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.processor.proc.ExecDynamicSqlInstruction.process(ExecDynamicSqlInstruction.java:186) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.processor.proc.ProcedurePlan.processProcedure(ProcedurePlan.java:356) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.processor.proc.ProcedurePlan.nextBatchDirect(ProcedurePlan.java:283) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.processor.proc.ProcedurePlan.nextBatch(ProcedurePlan.java:257) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.processor.relational.PlanExecutionNode.nextBatchDirect(PlanExecutionNode.java:118) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:149) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:149) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:157) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:139) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:435) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:320) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:248) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:269) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:214) [teiid-engine-8.4.1-redhat-7.hokuda.jar:8.4.1-redhat-7]
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
> 	at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.11#6341)


More information about the teiid-issues mailing list