[JBoss JIRA] Closed: (TEIID-1441) java.lang.NullPointerException - on queries involving lookup (temp table cache does not have buffermanager set on it)
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-1441?page=com.atlassian.jira.plugin... ]
Steven Hawkins closed TEIID-1441.
---------------------------------
> java.lang.NullPointerException - on queries involving lookup (temp table cache does not have buffermanager set on it)
> ---------------------------------------------------------------------------------------------------------------------
>
> Key: TEIID-1441
> URL: https://issues.jboss.org/browse/TEIID-1441
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 7.1.1
> Reporter: Warren Gibson
> Assignee: Steven Hawkins
> Priority: Blocker
> Fix For: 7.1.1, 7.3
>
>
> The following java.lang.NullPointerException is received in ER7 when running queries involving lookup...example query: SELECT IntKey, lookup('BQT1.MediumA', 'StringKey', 'IntKey', IntKey) AS Y FROM BQT1.MediumA ORDER BY IntKey
> This seems to only happen when running the production profile. I am getting 57 query failures on most if not all sources and the queries involve lookup.
> 2011-01-18 10:00:26,935 INFO [org.teiid.PROCESSOR.MATVIEWS] (Worker2_QueryProcessorQueue8) Loading materialized view table #CODE_BQT1.MEDIUMA.INTKEY.STRINGKEY
> 2011-01-18 10:00:27,154 ERROR [org.teiid.PROCESSOR] (Worker2_QueryProcessorQueue8) Unexpected exception for request 0wHCuxdsAg78.0
> java.lang.NullPointerException
> at org.teiid.dqp.internal.process.CachedResults.prepare(CachedResults.java:115)
> at org.teiid.dqp.internal.process.SessionAwareCache.put(SessionAwareCache.java:166)
> at org.teiid.query.tempdata.TempTableDataManager.loadGlobalTable(TempTableDataManager.java:508)
> at org.teiid.query.tempdata.TempTableDataManager.registerQuery(TempTableDataManager.java:410)
> at org.teiid.query.tempdata.TempTableDataManager.lookupCodeValue(TempTableDataManager.java:595)
> at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:962)
> at org.teiid.query.eval.Evaluator.internalEvaluate(Evaluator.java:633)
> at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:603)
> at org.teiid.query.processor.relational.ProjectNode.updateTuple(ProjectNode.java:218)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:181)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:274)
> at org.teiid.query.processor.BatchIterator.finalRow(BatchIterator.java:70)
> at org.teiid.common.buffer.AbstractTupleSource.getCurrentTuple(AbstractTupleSource.java:69)
> at org.teiid.query.processor.BatchIterator.getCurrentTuple(BatchIterator.java:82)
> at org.teiid.common.buffer.AbstractTupleSource.nextTuple(AbstractTupleSource.java:48)
> at org.teiid.query.processor.relational.SortUtility.initialSort(SortUtility.java:214)
> at org.teiid.query.processor.relational.SortUtility.sort(SortUtility.java:168)
> at org.teiid.query.processor.relational.SortNode.sortPhase(SortNode.java:96)
> at org.teiid.query.processor.relational.SortNode.nextBatchDirect(SortNode.java:85)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:274)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:107)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:150)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:105)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:115)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:250)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:184)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:49)
> at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:188)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:116)
> at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:290)
> 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)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years
[JBoss JIRA] Created: (TEIID-1387) Restrict access of default port 31000 to JDBC and 31443 to Admin connections
by Ramesh Reddy (JIRA)
Restrict access of default port 31000 to JDBC and 31443 to Admin connections
----------------------------------------------------------------------------
Key: TEIID-1387
URL: https://issues.jboss.org/browse/TEIID-1387
Project: Teiid
Issue Type: Bug
Components: Server
Affects Versions: 7.1
Reporter: Ramesh Reddy
Assignee: Steven Hawkins
31000 is default connection port intended for JDBC connections. ex: jdbc:teiid<vdb>@mm://host:31000
31443 is default secured connection port intended for Admin connections ex: mms://<host>:31443
However, due to lack of restriction in the Teiid server, user can make a JDBC connection like "jdbc:teiid<vdb>@mms://host:31443", or make an Admin connection like "mm://localhost:31000" thus creates a confusion as to which form to use "mm" or "mms" and which port to use "31000" or "31443".
The reason 31443 originally created was to secure the Admin connections and to create a separate process thread pool as Admin calls are synchronous. Where are JDBC calls as asynchronous. Mixing them up might lead confusion and not to mention thread contention under heavy load. So, Teiid should restrict the use of 31000 to JDBC and 31443 to Admin traffic.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years
[JBoss JIRA] Created: (TEIID-1451) Teiid does not handle failover correclty
by Boris Belovic (JIRA)
Teiid does not handle failover correclty
----------------------------------------
Key: TEIID-1451
URL: https://issues.jboss.org/browse/TEIID-1451
Project: Teiid
Issue Type: Bug
Components: Server
Affects Versions: 7.1
Environment: soaperf07 machine - soaperf07.mw.lab.eng.bos.redhat.com
JDK 1.6
RHEL 5
Reporter: Boris Belovic
Assignee: Steven Hawkins
I tried to simulate failover with Teiid. I have two SOA-P (ER7 build) nodes. When I killed first node, client correctly switched to second node. Then I re-started first node and killed second node. Client failed with the exception and did not switch back to first node.
Client was very simple - querying VDB in infinite loop and printing result to stdout.
What I did was:
1) I started both nodes, the started a client
2) Killed node no.1 with 'CTRL+Z' and 'kill -9 %1'
3) Client switched to node2
4) Re-started node no.1
5)Killed node no2 with 'CTRL+Z' and 'kill -9 %1'
6)Client failed with exception:
1 [InvalidSessionException]The specified session ID "null" is invalid. It cannot be found in the userbase.
[testng] at org.teiid.client.util.ExceptionUtil.convertException(ExceptionUtil.java:66)
[testng] at org.teiid.jboss.deployers.RuntimeEngineDeployer$2.invoke(RuntimeEngineDeployer.java:309)
[testng] at $Proxy294.executeRequest(Unknown Source)
[testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[testng] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[testng] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[testng] at java.lang.reflect.Method.invoke(Method.java:597)
[testng] at org.teiid.transport.ServerWorkItem.run(ServerWorkItem.java:81)
[testng] at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:188)
[testng] at org.teiid.transport.SocketClientInstance.processMessagePacket(SocketClientInstance.java:160)
[testng] at org.teiid.transport.SocketClientInstance.receivedMessage(SocketClientInstance.java:149)
[testng] at org.teiid.transport.SSLAwareChannelHandler.messageReceived(SSLAwareChannelHandler.java:210)
[testng] at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:100)
[testng] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
[testng] at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:754)
[testng] at org.jboss.netty.handler.stream.ChunkedWriteHandler.handleUpstream(ChunkedWriteHandler.java:144)
[testng] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
[testng] at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:754)
[testng] at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:302)
[testng] at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:317)
[testng] at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:299)
[testng] at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:216)
[testng] at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
[testng] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
[testng] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:540)
[testng] at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
[testng] at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
[testng] at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349)
[testng] at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:281)
[testng] at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:201)
[testng] at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
[testng] at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:46)
[testng] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[testng] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[testng] at java.lang.Thread.run(Thread.java:619)
[testng] Caused by: [InvalidSessionException]The specified session ID "null" is invalid. It cannot be found in the userbase.
[testng] at org.teiid.services.SessionServiceImpl.getSessionInfo(SessionServiceImpl.java:307)
[testng] at org.teiid.services.SessionServiceImpl.validateSession(SessionServiceImpl.java:300)
[testng] at org.teiid.jboss.deployers.RuntimeEngineDeployer$2.invoke(RuntimeEngineDeployer.java:302)
[testng] ... 33 more
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years
[JBoss JIRA] Created: (TEIID-1466) MySQL syntax error in cast from date to timestamp
by Claudio Venturini (JIRA)
MySQL syntax error in cast from date to timestamp
-------------------------------------------------
Key: TEIID-1466
URL: https://issues.jboss.org/browse/TEIID-1466
Project: Teiid
Issue Type: Bug
Components: Query Engine
Affects Versions: 7.3
Environment: Teiid 7.3 deployed on Jboss AS 5.1.0 GA running on Ubuntu Server 10.04 LTS, MySQL 5.1.51 running on the same machine as JBoss
Reporter: Claudio Venturini
Assignee: Steven Hawkins
If you have a table in MySQL with a field declared of type DATE, queries which need to cast that field to a timestamp fail.
E.g. consider a MySQL table T with a field A of type DATE, and create the corresponding source model. If you submit the following two queries, the first works and the second fails.
{noformat}
SELECT A FROM T;
{noformat}
{noformat}
SELECT CAST(A AS TIMESTAMP) FROM T;
{noformat}
This happens because in the second case, Teiid pushes to MySQL a query like the following:
{noformat}
SELECT CAST(g_0.A AS TIMESTAMP) FROM T AS g_0;
{noformat}
That syntax is not valid because MySQL doesn't support casting to timestamp. I think that if it would be possible to cast to datetime instead of timestamp, the query will work. Unfortunately, Teiid doesn't support the datetime data type... so there's no solution.
I've found two workarounds, which prevent Teiid from pushing the cast to the source:
# The first is to change the data type at the source, that is, by declaring the A field as DATETIME instead of DATE. But this is not alway possible.
# The other is to declare the field of type dateTime or timestamp in the source model, while leaving the "Native Type" property to DATE
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years