| Summary: | BLOB as virtual procedure parameter is getting closed | ||
|---|---|---|---|
| Product: | [JBoss] JBoss Data Virtualization 6 | Reporter: | Filip Nguyen <fnguyen> |
| Component: | Teiid | Assignee: | Van Halbert <vhalbert> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | |
| Severity: | low | Docs Contact: | |
| Priority: | low | ||
| Version: | 6.0.0 | CC: | atangrin, vhalbert |
| Target Milestone: | ER1 | Keywords: | QA-Closed |
| Target Release: | 6.1.0 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: |
A user has reported an exception regarding a BLOB stream being closed when calling one virtual procedure (with an XMLLiteral parameter) from inside another.
|
Story Points: | --- |
| Clone Of: | Environment: | ||
| Last Closed: | 2016-02-10 08:48:38 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
Steven Hawkins <shawkins> updated the status of jira TEIID-2769 to Resolved Steven Hawkins <shawkins> updated the status of jira TEIID-2769 to Closed |
Not sure what is the cause. I have two virtual procedures [1][2]. [2] has a XMLLiteral parameter. I call [2] inside [1]. However I get exception [3] because the response.result blob stream is apparently closed. [1] CREATE VIRTUAL PROCEDURE BEGIN SELECT t.* FROM (EXEC PeopleRestXmlSource.invokeHttp('GET', null, null, TRUE)) AS response, TABLE(EXEC PeopleRestXmlView.getPeople_response(XMLPARSE(DOCUMENT response.result))) AS t; END [2] CREATE VIRTUAL PROCEDURE BEGIN SELECT t.* FROM XMLTABLE('//return' PASSING PeopleJaxwsView.getPeopleByName_response.xml_in COLUMNS name string PATH 'text()') AS t; END [3] org.teiid.jdbc.TeiidSQLException: TEIID30328 Unable to evaluate XMLPARSE(DOCUMENT response.result): TEIID30331 java.sql.SQLException: Already Freed. at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135) at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:71) at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:668) at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:63) at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:516) at org.teiid.client.util.ResultsFuture.done(ResultsFuture.java:135) at org.teiid.client.util.ResultsFuture.access$200(ResultsFuture.java:40) at org.teiid.client.util.ResultsFuture$1.receiveResults(ResultsFuture.java:79) at org.teiid.net.socket.SocketServerInstanceImpl.receivedMessage(SocketServerInstanceImpl.java:242) at org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:278) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.teiid.net.socket.SocketServerConnectionFactory$ShutdownHandler.invoke(SocketServerConnectionFactory.java:102) at $Proxy1.read(Unknown Source) at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:377) at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:525) at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:393) at org.teiid.jdbc.StatementImpl.executeQuery(StatementImpl.java:327) at JDBCClient.execute(JDBCClient.java:81) at JDBCClient.main(JDBCClient.java:48) Caused by: org.teiid.api.exception.query.ExpressionEvaluationException: TEIID30328 Unable to evaluate XMLPARSE(DOCUMENT response.result): TEIID30331 java.sql.SQLException: Already Freed. at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:608) at org.teiid.query.processor.proc.ProcedurePlan.evaluateExpression(ProcedurePlan.java:804) at org.teiid.query.processor.proc.ProcedurePlan.open(ProcedurePlan.java:211) at org.teiid.query.processor.relational.PlanExecutionNode.open(PlanExecutionNode.java:82) at org.teiid.query.processor.relational.RelationalNode.open(RelationalNode.java:254) at org.teiid.query.processor.relational.JoinStrategy.openRight(JoinStrategy.java:105) at org.teiid.query.processor.relational.NestedTableJoinStrategy.process(NestedTableJoinStrategy.java:114) at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:211) at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278) at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146) at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278) at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:149) at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:149) at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112) at org.teiid.query.processor.BatchIterator.finalRow(BatchIterator.java:69) at org.teiid.common.buffer.AbstractTupleSource.getCurrentTuple(AbstractTupleSource.java:70) at org.teiid.query.processor.BatchIterator.getCurrentTuple(BatchIterator.java:84) at org.teiid.common.buffer.AbstractTupleSource.hasNext(AbstractTupleSource.java:92) at org.teiid.query.processor.proc.ProcedurePlan.executePlan(ProcedurePlan.java:563) at org.teiid.query.processor.proc.CreateCursorResultSetInstruction.process(CreateCursorResultSetInstruction.java:68) at org.teiid.query.processor.proc.ProcedurePlan.processProcedure(ProcedurePlan.java:356) at org.teiid.query.processor.proc.ProcedurePlan.nextBatchDirect(ProcedurePlan.java:283) at org.teiid.query.processor.proc.ProcedurePlan.nextBatch(ProcedurePlan.java:257) at org.teiid.query.processor.relational.PlanExecutionNode.nextBatchDirect(PlanExecutionNode.java:118) at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278) at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146) at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278) at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146) at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278) at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146) at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278) at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:149) at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:149) at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112) at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:157) at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:139) at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:435) at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:320) at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51) at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:248) at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:269) at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:214) 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:722) Caused by: org.teiid.api.exception.query.ExpressionEvaluationException: TEIID30331 java.sql.SQLException: Already Freed. at org.teiid.query.eval.Evaluator.evaluateXMLParse(Evaluator.java:734) at org.teiid.query.eval.Evaluator.internalEvaluate(Evaluator.java:668) at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:606) ... 45 more Caused by: java.sql.SQLException: java.sql.SQLException: Already Freed. at org.teiid.core.types.BaseLob.getBinaryStream(BaseLob.java:105) at org.teiid.core.types.BaseLob.getCharacterStream(BaseLob.java:98) at org.teiid.query.eval.Evaluator.evaluateXMLParse(Evaluator.java:727) ... 47 more Caused by: java.io.IOException: java.sql.SQLException: Already Freed. at org.teiid.core.types.InputStreamFactory$BlobInputStreamFactory.getInputStream(InputStreamFactory.java:205) at org.teiid.core.types.BaseLob.getBinaryStream(BaseLob.java:103) ... 49 more Caused by: java.sql.SQLException: Already Freed. at org.teiid.translator.ws.BinaryWSProcedureExecution$StreamingBlob.getBinaryStream(BinaryWSProcedureExecution.java:72) at org.teiid.core.types.InputStreamFactory$BlobInputStreamFactory.getInputStream(InputStreamFactory.java:203) ... 50 more