[ 
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)

Reply via email to