Return-Path: X-Original-To: apmail-drill-issues-archive@minotaur.apache.org Delivered-To: apmail-drill-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3FD3F17B27 for ; Sat, 25 Apr 2015 14:54:39 +0000 (UTC) Received: (qmail 90582 invoked by uid 500); 25 Apr 2015 14:54:39 -0000 Delivered-To: apmail-drill-issues-archive@drill.apache.org Received: (qmail 90548 invoked by uid 500); 25 Apr 2015 14:54:38 -0000 Mailing-List: contact issues-help@drill.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@drill.apache.org Delivered-To: mailing list issues@drill.apache.org Received: (qmail 90538 invoked by uid 99); 25 Apr 2015 14:54:38 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 25 Apr 2015 14:54:38 +0000 Date: Sat, 25 Apr 2015 14:54:38 +0000 (UTC) From: "Deneche A. Hakim (JIRA)" To: issues@drill.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (DRILL-2878) FragmentExecutor.closeOutResources() is not called if an exception happens in the Foreman before the fragment executor starts running MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/DRILL-2878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14512522#comment-14512522 ] Deneche A. Hakim commented on DRILL-2878: ----------------------------------------- A similar problem happens if a non root fragment fails before the root fragment starts running (it's still waiting for data). The Foreman will cancel all fragments, but the root fragment will never get to call it's closeOutResources() method. You can easily reproduce this problem with the following unit test {noformat} org.apache.drill.exec.server.TestDrillbitResilience#failsDuringExecution {noformat} > 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)