You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Jacques Nadeau (JIRA)" <ji...@apache.org> on 2015/05/06 22:44:00 UTC

[jira] [Commented] (DRILL-2878) FragmentExecutor.closeOutResources() is not called if an exception happens in the Foreman before the fragment executor starts running

    [ https://issues.apache.org/jira/browse/DRILL-2878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14531369#comment-14531369 ] 

Jacques Nadeau commented on DRILL-2878:
---------------------------------------

I'm not a big fan of this solution as it doesn't make a lot of sense (high implicit state dynamic).  What alternatives did you consider?  If this is the best way, I think we need a substantial amount of comment on it.

> FragmentExecutor.closeOutResources() is not called if an exception happens in the Foreman before the fragment executor starts running
> -------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DRILL-2878
>                 URL: https://issues.apache.org/jira/browse/DRILL-2878
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Flow
>            Reporter: Deneche A. Hakim
>            Assignee: Chris Westin
>             Fix For: 1.0.0
>
>         Attachments: DRILL-2878.1.patch.txt
>
>
> When the Foreman sets up the root FragmentExecutor and it needs to wait for data from the remote fragments, the fragment manager is recorded in the work bus and the root fragment executor is not run immediately.
> If an exception happens in the Foreman while setting up the remote fragments, the Foreman cancels all fragments and returns a FAILED message to the client.
> Because the root fragment executor was not run it will never call it's closeOutResources() method and it's fragment context will never be closed.
> You can easily reproduce this by running the following unit test:
> {noformat}
> org.apache.drill.exec.server.TestDrillbitResilience#failsWhenSendingFragments
> {noformat}
> although the test passes successfully because Drill does report the correct failure to the client, the memory leak is not detected and will show up after the test finishes



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)