You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by dd...@apache.org on 2008/06/03 16:32:06 UTC
svn commit: r662813 - in /hadoop/core/trunk: CHANGES.txt
src/java/org/apache/hadoop/mapred/JobClient.java
src/java/org/apache/hadoop/mapred/JobInProgress.java
Author: ddas
Date: Tue Jun 3 07:32:06 2008
New Revision: 662813
URL: http://svn.apache.org/viewvc?rev=662813&view=rev
Log:
HADOOP-2132. Only RUNNING/PREP jobs can be killed. Contributed by Jothi Padmanabhan.
Modified:
hadoop/core/trunk/CHANGES.txt
hadoop/core/trunk/src/java/org/apache/hadoop/mapred/JobClient.java
hadoop/core/trunk/src/java/org/apache/hadoop/mapred/JobInProgress.java
Modified: hadoop/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=662813&r1=662812&r2=662813&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Tue Jun 3 07:32:06 2008
@@ -405,6 +405,7 @@
Thus removes the class org.apache.hadoop.mapred.JobShell.
(Amareshwari Sriramadasu via ddas)
+ HADOOP-2132. Only RUNNING/PREP jobs can be killed. (Jothi Padmanabhan via ddas)
Release 0.17.0 - 2008-05-18
Modified: hadoop/core/trunk/src/java/org/apache/hadoop/mapred/JobClient.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/java/org/apache/hadoop/mapred/JobClient.java?rev=662813&r1=662812&r2=662813&view=diff
==============================================================================
--- hadoop/core/trunk/src/java/org/apache/hadoop/mapred/JobClient.java (original)
+++ hadoop/core/trunk/src/java/org/apache/hadoop/mapred/JobClient.java Tue Jun 3 07:32:06 2008
@@ -182,10 +182,18 @@
*/
synchronized void ensureFreshStatus() throws IOException {
if (System.currentTimeMillis() - statustime > MAX_JOBPROFILE_AGE) {
- this.status = jobSubmitClient.getJobStatus(profile.getJobID());
- this.statustime = System.currentTimeMillis();
+ updateStatus();
}
}
+
+ /** Some methods need to update status immediately. So, refresh
+ * immediately
+ * @throws IOException
+ */
+ synchronized void updateStatus() throws IOException {
+ this.status = jobSubmitClient.getJobStatus(profile.getJobID());
+ this.statustime = System.currentTimeMillis();
+ }
/**
* An identifier for the job
@@ -244,7 +252,7 @@
* Returns immediately whether the whole job is done yet or not.
*/
public synchronized boolean isComplete() throws IOException {
- ensureFreshStatus();
+ updateStatus();
return (status.getRunState() == JobStatus.SUCCEEDED ||
status.getRunState() == JobStatus.FAILED);
}
@@ -253,7 +261,7 @@
* True iff job completed successfully.
*/
public synchronized boolean isSuccessful() throws IOException {
- ensureFreshStatus();
+ updateStatus();
return status.getRunState() == JobStatus.SUCCEEDED;
}
@@ -307,7 +315,7 @@
@Override
public String toString() {
try {
- ensureFreshStatus();
+ updateStatus();
} catch (IOException e) {
}
return "Job: " + profile.getJobID() + "\n" +
Modified: hadoop/core/trunk/src/java/org/apache/hadoop/mapred/JobInProgress.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/java/org/apache/hadoop/mapred/JobInProgress.java?rev=662813&r1=662812&r2=662813&view=diff
==============================================================================
--- hadoop/core/trunk/src/java/org/apache/hadoop/mapred/JobInProgress.java (original)
+++ hadoop/core/trunk/src/java/org/apache/hadoop/mapred/JobInProgress.java Tue Jun 3 07:32:06 2008
@@ -1405,7 +1405,8 @@
* Kill the job and all its component tasks.
*/
public synchronized void kill() {
- if (status.getRunState() != JobStatus.FAILED) {
+ if ((status.getRunState() == JobStatus.RUNNING) ||
+ (status.getRunState() == JobStatus.PREP)) {
LOG.info("Killing job '" + this.status.getJobID() + "'");
this.status = new JobStatus(status.getJobID(), 1.0f, 1.0f, JobStatus.FAILED);
this.finishTime = System.currentTimeMillis();