Deneche A. Hakim created DRILL-2878:
---------------------------------------

             Summary: 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


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)

Reply via email to