Return-Path: Delivered-To: apmail-hadoop-core-commits-archive@www.apache.org Received: (qmail 40589 invoked from network); 19 Mar 2009 13:19:08 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 19 Mar 2009 13:19:08 -0000 Received: (qmail 30577 invoked by uid 500); 19 Mar 2009 13:19:08 -0000 Delivered-To: apmail-hadoop-core-commits-archive@hadoop.apache.org Received: (qmail 30404 invoked by uid 500); 19 Mar 2009 13:19:08 -0000 Mailing-List: contact core-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: core-dev@hadoop.apache.org Delivered-To: mailing list core-commits@hadoop.apache.org Received: (qmail 30395 invoked by uid 99); 19 Mar 2009 13:19:07 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Mar 2009 06:19:07 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Mar 2009 13:19:07 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id EF468238896C; Thu, 19 Mar 2009 13:18:46 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r755986 - in /hadoop/core/trunk: CHANGES.txt src/contrib/fairscheduler/src/java/org/apache/hadoop/mapred/FairSchedulerServlet.java Date: Thu, 19 Mar 2009 13:18:46 -0000 To: core-commits@hadoop.apache.org From: yhemanth@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090319131846.EF468238896C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: yhemanth Date: Thu Mar 19 13:18:46 2009 New Revision: 755986 URL: http://svn.apache.org/viewvc?rev=755986&view=rev Log: HADOOP-5534. Fixed a deadlock in Fair scheduler's servlet. Contributed by Rahul Kumar Singh. Modified: hadoop/core/trunk/CHANGES.txt hadoop/core/trunk/src/contrib/fairscheduler/src/java/org/apache/hadoop/mapred/FairSchedulerServlet.java Modified: hadoop/core/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=755986&r1=755985&r2=755986&view=diff ============================================================================== --- hadoop/core/trunk/CHANGES.txt (original) +++ hadoop/core/trunk/CHANGES.txt Thu Mar 19 13:18:46 2009 @@ -1053,6 +1053,9 @@ HADOOP-5471. Fixes a problem to do with updating the log.index file in the case where a cleanup task is run. (Amareshwari Sriramadasu via ddas) + HADOOP-5534. Fixed a deadlock in Fair scheduler's servlet. + (Rahul Kumar Singh via yhemanth) + Release 0.19.2 - Unreleased BUG FIXES Modified: hadoop/core/trunk/src/contrib/fairscheduler/src/java/org/apache/hadoop/mapred/FairSchedulerServlet.java URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/contrib/fairscheduler/src/java/org/apache/hadoop/mapred/FairSchedulerServlet.java?rev=755986&r1=755985&r2=755986&view=diff ============================================================================== --- hadoop/core/trunk/src/contrib/fairscheduler/src/java/org/apache/hadoop/mapred/FairSchedulerServlet.java (original) +++ hadoop/core/trunk/src/contrib/fairscheduler/src/java/org/apache/hadoop/mapred/FairSchedulerServlet.java Thu Mar 19 13:18:46 2009 @@ -87,35 +87,36 @@ } if (request.getParameter("setPool") != null) { Collection runningJobs = jobTracker.getRunningJobs(); + PoolManager poolMgr = null; synchronized (scheduler) { - PoolManager poolMgr = scheduler.getPoolManager(); - String pool = request.getParameter("setPool"); - String jobId = request.getParameter("jobid"); - for (JobInProgress job: runningJobs) { - if (job.getProfile().getJobID().toString().equals(jobId)) { + poolMgr = scheduler.getPoolManager(); + } + String pool = request.getParameter("setPool"); + String jobId = request.getParameter("jobid"); + for (JobInProgress job: runningJobs) { + if (job.getProfile().getJobID().toString().equals(jobId)) { + synchronized(scheduler){ poolMgr.setPool(job, pool); - scheduler.update(); - break; } + scheduler.update(); + break; } - } + } response.sendRedirect("/scheduler" + (advancedView ? "?advanced" : "")); return; } if (request.getParameter("setPriority") != null) { - Collection runningJobs = jobTracker.getRunningJobs(); - synchronized (scheduler) { - JobPriority priority = JobPriority.valueOf(request.getParameter( - "setPriority")); - String jobId = request.getParameter("jobid"); - for (JobInProgress job: runningJobs) { - if (job.getProfile().getJobID().toString().equals(jobId)) { - job.setPriority(priority); - scheduler.update(); - break; - } + Collection runningJobs = jobTracker.getRunningJobs(); + JobPriority priority = JobPriority.valueOf(request.getParameter( + "setPriority")); + String jobId = request.getParameter("jobid"); + for (JobInProgress job: runningJobs) { + if (job.getProfile().getJobID().toString().equals(jobId)) { + job.setPriority(priority); + scheduler.update(); + break; } - } + } response.sendRedirect("/scheduler" + (advancedView ? "?advanced" : "")); return; }