[JBoss JIRA] (TEIID-2359) BufferManager reserved thread local can keep buffermanager references alive
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2359?page=com.atlassian.jira.plugin... ]
Steven Hawkins closed TEIID-2359.
---------------------------------
> BufferManager reserved thread local can keep buffermanager references alive
> ---------------------------------------------------------------------------
>
> Key: TEIID-2359
> URL: https://issues.jboss.org/browse/TEIID-2359
> Project: Teiid
> Issue Type: Feature Request
> Components: Query Engine
> Affects Versions: 8.0
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 8.3
>
>
> The most common implementation of ThreadLocal holds does not garbarge collect ThreadLocal values when the ThreadLocal goes out of scope - only when the Thread stops. Thus the BufferManager reserved threadlocal being a non-static inner class is inadvertently keeping a reference alive.
> Marked as starting with Teiid 8.0 as selective Teiid restarts (which is how multiple instances are introduced) are not performed in the 7.x series.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] (TEIID-2536) MetadataFactory datatype issue on boot up
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2536?page=com.atlassian.jira.plugin... ]
Steven Hawkins closed TEIID-2536.
---------------------------------
> MetadataFactory datatype issue on boot up
> -----------------------------------------
>
> Key: TEIID-2536
> URL: https://issues.jboss.org/browse/TEIID-2536
> Project: Teiid
> Issue Type: Bug
> Components: Server
> Affects Versions: 8.1
> Reporter: Van Halbert
> Assignee: Steven Hawkins
> Labels: 8.4.Final
> Fix For: 8.4
>
>
> Occurs on server startup. Deployed a vdb and was able to connect, etc. Bounced the server and now get a bunch of these errors:
> 21:03:39,432 ERROR [org.jboss.threads.executor] (teiid-async-threads -
> 1) Task execution failed for task org.teiid.jboss.VDBService$6@54241d18:
> java.lang.NullPointerException
> at
> org.teiid.metadata.MetadataFactory.addDatatype(MetadataFactory.java:589)
> [teiid-api-8.4.0.CR2-SNAPSHOT.jar:8.4.0.CR2-SNAPSHOT]
> at
> org.teiid.metadata.MetadataFactory.correctDataTypes(MetadataFactory.java:583)
> [teiid-api-8.4.0.CR2-SNAPSHOT.jar:8.4.0.CR2-SNAPSHOT]
> at
> org.teiid.metadata.MetadataFactory.correctDatatypes(MetadataFactory.java:559)
> [teiid-api-8.4.0.CR2-SNAPSHOT.jar:8.4.0.CR2-SNAPSHOT]
> at org.teiid.jboss.VDBService$6.run(VDBService.java:367)
> [teiid-jboss-integration-8.4.0.CR2-SNAPSHOT.jar:8.4.0.CR2-SNAPSHOT]
> at
> org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33)
> at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:806)
> at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45)
> at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:847)
> at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_09-icedtea]
> at org.jboss.threads.JBossThread.run(JBossThread.java:122)
> ------------
> Looking at MetadataFactory I noticed the following:
> Datatype dt = this.builtinDataTypes.get(c.getDatatype().getName());
> if (dt != null) {
> c.setDatatype(dt);
> } else {
> //must be an enterprise type
> //if it's used in a single schema, we're ok, but when used in multiple there's an issue
> --> addDatatype(dt);
> }
> }
> ---------
> that addDatatype(dt) was passing dt when null, and therefore, in addDatatype, the NPE was caused when datatype.getName() is called. But I think what was intended was to pass in c.getDatatype() when it wasn't found in the builtinDataTypes.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] (TEIID-2450) Like criteria with 'Z' before wildcards throw an exception
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2450?page=com.atlassian.jira.plugin... ]
Steven Hawkins closed TEIID-2450.
---------------------------------
> Like criteria with 'Z' before wildcards throw an exception
> ----------------------------------------------------------
>
> Key: TEIID-2450
> URL: https://issues.jboss.org/browse/TEIID-2450
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.2
> Reporter: Paul Lysak
> Assignee: Steven Hawkins
> Fix For: 8.4
>
>
> If query contains letter 'Z' before wildcard (for example, query contains following part: MY_COLUMN LIKE 'BAZ_BAR') then exception is thrown:
> Caused by: java.lang.IllegalArgumentException: fromKey > toKey
> at java.util.TreeMap$NavigableSubMap.<init>(TreeMap.java:1240)
> ...
> at org.teiid.dqp.internal.process.RecordTable.processQuery(RecordTable.java:189)
> ...
>
> The reason of the problem is following.
> BaseIndexInfo.processCriteria() in order to build "less then" conditon from LIKE increments the code of last character in condition prefix:
> this.addCondition(i, new Constant(prefix.substring(0, prefix.length() -1) + (char) (prefix.charAt(prefix.length()-1)+1)), CompareCriteria.LE);
> If prefix happens to end in uppercase letter 'Z' then after increment it becomes '['.
> But TempMetadataStore uses String.CaseInsensitiveComparator:
> public TempMetadataStore() {
> this(new TreeMap<String, TempMetadataID>(String.CASE_INSENSITIVE_ORDER));
> }
> And String API documentation clearly says that comparison is performed against lowercase versions. Therefore 'Z' is converted to 'z'.
> And later when trying to get subtree with lower bound = 'Z' and upper bound = '[' and exception is thrown because in fact 'z' is lesser then '['
> Other than this exception it also has another problem. If we do query MY_COLUMN LIKE 'BA@_BAR' then upper condition would be 'A' (next character after '@').
> But due to lowercase comparison it will be converted to 'a', so values like 'BAB_BAR', 'BAC_BAR', ... 'BA^_BAR' all would be returned because 'B', 'C', ..., '^' are between '@' and 'a'.
> I suggest either using case sensitive map (with prior conversion of all values to upper case) or converting values in BaseIndexInfo.processCriteria() into lower case.
> I also worry about CompareCriteria.LE in BaseIndexInfo.processCriteria(). Shouldn't it be strictly less? with less or equal when querying 'AAA_' you will get 'AAB_' values as well.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] (TEIID-2363) proactive buffering not occurring for the inner side of an outer join on "MERGE JOIN (SORT/ALREADY_SORTED)"
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2363?page=com.atlassian.jira.plugin... ]
Steven Hawkins closed TEIID-2363.
---------------------------------
> proactive buffering not occurring for the inner side of an outer join on "MERGE JOIN (SORT/ALREADY_SORTED)"
> -----------------------------------------------------------------------------------------------------------
>
> Key: TEIID-2363
> URL: https://issues.jboss.org/browse/TEIID-2363
> Project: Teiid
> Issue Type: Feature Request
> Components: Query Engine
> Affects Versions: 7.7.2
> Reporter: Johnathon Lee
> Assignee: Steven Hawkins
> Fix For: 8.4, 7.7.7
>
>
> The issue here is this is an outer join and the inner side (the already sorted side) will be buffered regardless. Current logic does not catch blocked exceptions from one side and pro-actively buffer the other - rather we are serially performing the sort and then continue with the loading of the inner side
> For inner joins there is a clear trade-off between execution speed and buffering so this behavior may have to be hint or config driven for non-dependent non-outer joins.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] (TEIID-2460) Weird behavior when Max buffer space restriction is hit
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2460?page=com.atlassian.jira.plugin... ]
Steven Hawkins closed TEIID-2460.
---------------------------------
> Weird behavior when Max buffer space restriction is hit
> --------------------------------------------------------
>
> Key: TEIID-2460
> URL: https://issues.jboss.org/browse/TEIID-2460
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 7.7.6
> Reporter: Filip Nguyen
> Assignee: Steven Hawkins
> Fix For: 8.4, 7.7.7
>
> Attachments: teiid-jboss-beans.xml
>
>
> I was trying to restrict the disk space used by buffer manager (see steps to reproduce for my methodology). When the disk limit is hit, it really tries to stop the query, but doesn't succeed immediately.
> There is a big amount of exceptions [1] for relatively long period of time (minutes for big files), until it fails eventually with [2]. The error [2] is also given back to the JDBC client.
> Problem is that after the query fails in this fashion, the whole buffer disk space is still occupied and any new query, that needs even small (acceptable) buffer disk space, fails.
> Only way that I have found to make the buffer space usable again is to restart the server.
> [1] Error transferring block to storage 149742
> java.io.IOException: Max buffer space of 31,457,280 bytes has been exceed. The current operation will be aborted.
> [2] org.teiid.jdbc.TeiidSQLException: Batch not found in storage 50937
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] (TEIID-2244) dynamic VDB, UDF class not found
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2244?page=com.atlassian.jira.plugin... ]
Steven Hawkins closed TEIID-2244.
---------------------------------
> dynamic VDB, UDF class not found
> --------------------------------
>
> Key: TEIID-2244
> URL: https://issues.jboss.org/browse/TEIID-2244
> Project: Teiid
> Issue Type: Bug
> Components: Server
> Affects Versions: 8.1
> Environment: OS X 10.7.5
> Reporter: David Eichmann
> Assignee: Steven Hawkins
> Priority: Critical
> Fix For: 8.2
>
> Attachments: function-classloading.patch
>
>
> I'm attempting to deploy a UDF in a dynamic VDB and getting a ClassNotFound:
>
> 14:45:41,654 ERROR org.jboss.threads.executor (teiid-async-threads - 4) Task execution failed for task org.teiid.jboss.VDBService$6@3327d4d9: org.teiid.core.TeiidRuntimeException: TEIID30387 Could not load UDF "institute", since its invocation class "edu.uiowa.tagUtil.grantParser.nih" could not be found.
> at org.teiid.query.function.FunctionTree.createFunctionDescriptor(FunctionTree.java:321) teiid-engine-8.1.0.Final.jar:8.1.0.Final
> at org.teiid.query.function.FunctionTree.addFunction(FunctionTree.java:232) teiid-engine-8.1.0.Final.jar:8.1.0.Final
> at org.teiid.query.function.FunctionTree.(FunctionTree.java:106) teiid-engine-8.1.0.Final.jar:8.1.0.Final
> at org.teiid.deployers.CompositeVDB.buildTransformationMetaData(CompositeVDB.java:84) teiid-runtime-8.1.0.Final.jar:8.1.0.Final
> at org.teiid.deployers.CompositeVDB.metadataLoadFinished(CompositeVDB.java:333) teiid-runtime-8.1.0.Final.jar:8.1.0.Final
> at org.teiid.deployers.VDBRepository.finishDeployment(VDBRepository.java:287) teiid-runtime-8.1.0.Final.jar:8.1.0.Final
> at org.teiid.runtime.AbstractVDBDeployer.metadataLoaded(AbstractVDBDeployer.java:166) teiid-runtime-8.1.0.Final.jar:8.1.0.Final
> at org.teiid.jboss.VDBService.access$800(VDBService.java:89) teiid-jboss-integration-8.1.0.Final.jar:8.1.0.Final
> at org.teiid.jboss.VDBService$6.run(VDBService.java:385) teiid-jboss-integration-8.1.0.Final.jar:8.1.0.Final
> at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33)
> at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:801)
> at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45)
> at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:842)
> at java.lang.Thread.run(Thread.java:680) Teiid 8.1 - dynamic VDB, UDF class not found
> at org.jboss.threads.JBossThread.run(JBossThread.java:122)
> Caused by: java.lang.ClassNotFoundException: edu.uiowa.tagUtil.grantParser.nih from [Module "org.jboss.teiid:main" from local module loader @671ff436 (roots: /Users/eichmann/downloads/jboss/jboss-as-7.1.1.Final/modules)]
> at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) jboss-modules.jar:1.1.1.GA
> at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) jboss-modules.jar:1.1.1.GA
> at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) jboss-modules.jar:1.1.1.GA
> at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423) jboss-modules.jar:1.1.1.GA
> at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) jboss-modules.jar:1.1.1.GA
> at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) jboss-modules.jar:1.1.1.GA
> at java.lang.Class.forName0(Native Method) Teiid 8.1 - dynamic VDB, UDF class not found
> at java.lang.Class.forName(Class.java:247) Teiid 8.1 - dynamic VDB, UDF class not found
> at org.teiid.query.function.UDFSource.getInvocationClass(UDFSource.java:44) teiid-engine-8.1.0.Final.jar:8.1.0.Final
> at org.teiid.query.function.FunctionTree.createFunctionDescriptor(FunctionTree.java:311) teiid-engine-8.1.0.Final.jar:8.1.0.Final
> ... 14 more
>
> re Ramesh, the class loader for DDL is not getting properly set.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months