[
https://issues.apache.org/jira/browse/DRILL-3594?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14652713#comment-14652713
]
ASF GitHub Bot commented on DRILL-3594:
---------------------------------------
GitHub user cwestin opened a pull request:
https://github.com/apache/drill/pull/102
DRILL-3594: don't use first query's allocator for rest of drillbit's …
DrillRuleSets.getDrillBasicRules() lazily constructed the singleton set of
rules to use. However, some of the rule objects capture the current query's
context. The new memory allocator detected that the allocator from the query
context of the first query is being used later, for other queries' rules
processing, even though that allocator has been closed. This patch creates a
static set of rules, and using that, creates a new set for each query, allowing
the rules that need the current context to use that, because those are only
added to the set to be used for this query.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/cwestin/incubator-drill alloc-rulesets
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/drill/pull/102.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #102
----
commit b061568ed880f40eaec1bc381170e7c5e9abf0f7
Author: Chris Westin <[email protected]>
Date: 2015-08-03T20:13:21Z
DRILL-3594: don't use first query's allocator for rest of drillbit's life
----
> RuleSets capture and illegally use allocator from the first query executed on
> the drillbit
> ------------------------------------------------------------------------------------------
>
> Key: DRILL-3594
> URL: https://issues.apache.org/jira/browse/DRILL-3594
> Project: Apache Drill
> Issue Type: Bug
> Components: Execution - Flow
> Affects Versions: 1.1.0
> Reporter: Chris Westin
> Assignee: Chris Westin
>
> DrillRuleSets.java lazily creates a list of rules that are used to decide on
> optimizations. This is done lazily because some of the rules require some
> context to operate on. However, the ones that do capture context that should
> not be used after the current query completes. In particular, the new
> allocator has caught later queries using the allocator created (and since
> closed) for the first query executed on the drillbit.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)