[teiid-issues] [JBoss JIRA] (TEIID-2359) BufferManager reserved thread local can keep buffermanager references alive
Steven Hawkins (JIRA)
jira-events at lists.jboss.org
Fri Jan 25 12:40:47 EST 2013
[ https://issues.jboss.org/browse/TEIID-2359?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Steven Hawkins resolved TEIID-2359.
-----------------------------------
Fix Version/s: 8.3
Resolution: Done
Switched the reserved by thread to a static class to remove the erroneous reference to a buffermanager instance. Also changed the threadlocal pattern for buffer usage to just duplicating at the level of the InodeBlockManager. This will have a higher gc overhead, but it removes the need for using a theadlocal - which would also require a reference queue to actually clean up the references (although I suspect that would still be less overhead as the queue will typically be empty and thus low cost to check).
> 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
More information about the teiid-issues
mailing list