Return-Path: X-Original-To: apmail-hadoop-common-issues-archive@minotaur.apache.org Delivered-To: apmail-hadoop-common-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 D8DA09D09 for ; Mon, 30 Apr 2012 18:52:12 +0000 (UTC) Received: (qmail 8794 invoked by uid 500); 30 Apr 2012 18:52:12 -0000 Delivered-To: apmail-hadoop-common-issues-archive@hadoop.apache.org Received: (qmail 8756 invoked by uid 500); 30 Apr 2012 18:52:12 -0000 Mailing-List: contact common-issues-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-issues@hadoop.apache.org Delivered-To: mailing list common-issues@hadoop.apache.org Received: (qmail 8748 invoked by uid 99); 30 Apr 2012 18:52:12 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Apr 2012 18:52:12 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 30 Apr 2012 18:52:10 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 304ED42852E for ; Mon, 30 Apr 2012 18:51:49 +0000 (UTC) Date: Mon, 30 Apr 2012 18:51:49 +0000 (UTC) From: "Tsz Wo (Nicholas), SZE (JIRA)" To: common-issues@hadoop.apache.org Message-ID: <1688939358.10203.1335811909199.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <600263811.3808.1335550495864.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (HADOOP-8325) Add a ShutdownHookManager to be used by different components instead of the JVM shutdownhook 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/HADOOP-8325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13265107#comment-13265107 ] Tsz Wo (Nicholas), SZE commented on HADOOP-8325: ------------------------------------------------ Hi Alejandro, hooks is a synchronized set but we still have to manually synchronize it when iterating it. So, we need to synchronize the first line of getShutdownHooksInOrder() which copies the hooks to a new list. {code} + List getShutdownHooksInOrder() { + List list = new ArrayList(MGR.hooks); {code} BTW, what should be expected for adding/removing hooks during shutdown? I think we probably should throw an IllegalStateException. > Add a ShutdownHookManager to be used by different components instead of the JVM shutdownhook > -------------------------------------------------------------------------------------------- > > Key: HADOOP-8325 > URL: https://issues.apache.org/jira/browse/HADOOP-8325 > Project: Hadoop Common > Issue Type: Bug > Components: fs > Affects Versions: 2.0.0 > Reporter: Alejandro Abdelnur > Assignee: Alejandro Abdelnur > Priority: Critical > Fix For: 2.0.0 > > Attachments: HADOOP-8325.patch, HADOOP-8325.patch, HADOOP-8325.patch, HADOOP-8325.patch, HADOOP-8325.patch, HADOOP-8325.patch, HADOOP-8325.patch > > > FileSystem adds a JVM shutdown hook when a filesystem instance is cached. > MRAppMaster also uses a JVM shutdown hook, among other things, the MRAppMaster JVM shutdown hook is used to ensure state are written to HDFS. > This creates a race condition because each JVM shutdown hook is a separate thread and if there are multiple JVM shutdown hooks there is not assurance of order of execution, they could even run in parallel. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira