Skip to content

Commit cae8076

Browse files
committed
Reverting MAPREDUCE-4371 to address test failures.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1355382 13f79535-47bb-0310-9956-ffa450edef68
1 parent 15a185b commit cae8076

File tree

3 files changed

+0
-128
lines changed
  • hadoop-mapreduce-project

3 files changed

+0
-128
lines changed

hadoop-mapreduce-project/CHANGES.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,6 @@ Trunk (unreleased changes)
123123

124124
MAPREDUCE-3868. Make Raid Compile. (Weiyan Wang via schen)
125125

126-
MAPREDUCE-4371. Check for cyclic dependencies in Jobcontrol job DAG
127-
(madhukara phatak via bobby)
128-
129126
Branch-2 ( Unreleased changes )
130127

131128
INCOMPATIBLE CHANGES

hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/jobcontrol/JobControl.java

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424
import java.util.Iterator;
2525
import java.util.LinkedList;
2626
import java.util.List;
27-
import java.util.HashMap;
28-
import java.util.HashSet;
2927

3028
import org.apache.commons.logging.Log;
3129
import org.apache.commons.logging.LogFactory;
@@ -217,10 +215,6 @@ public void run() {
217215
}
218216

219217
synchronized(this) {
220-
if (isCircular(jobsInProgress)) {
221-
throw new IllegalArgumentException(
222-
"job control has circular dependency");
223-
}
224218
Iterator<ControlledJob> it = jobsInProgress.iterator();
225219
while(it.hasNext()) {
226220
ControlledJob j = it.next();
@@ -287,64 +281,4 @@ synchronized private void failAllJobs(Throwable t) {
287281
}
288282
}
289283
}
290-
291-
/**
292-
* Uses topological sorting algorithm for finding circular dependency
293-
*/
294-
private boolean isCircular(final List<ControlledJob> jobList) {
295-
boolean cyclePresent = false;
296-
HashSet<ControlledJob> SourceSet = new HashSet<ControlledJob>();
297-
HashMap<ControlledJob, List<ControlledJob>> processedMap =
298-
new HashMap<ControlledJob, List<ControlledJob>>();
299-
for (ControlledJob n : jobList) {
300-
processedMap.put(n, new ArrayList<ControlledJob>());
301-
}
302-
for (ControlledJob n : jobList) {
303-
if (!hasInComingEdge(n, jobList, processedMap)) {
304-
SourceSet.add(n);
305-
}
306-
}
307-
while (!SourceSet.isEmpty()) {
308-
ControlledJob controlledJob = SourceSet.iterator().next();
309-
SourceSet.remove(controlledJob);
310-
if (controlledJob.getDependentJobs() != null) {
311-
for (int i = 0; i < controlledJob.getDependentJobs().size(); i++) {
312-
ControlledJob depenControlledJob =
313-
controlledJob.getDependentJobs().get(i);
314-
processedMap.get(controlledJob).add(depenControlledJob);
315-
if (!hasInComingEdge(controlledJob, jobList, processedMap)) {
316-
SourceSet.add(depenControlledJob);
317-
}
318-
}
319-
}
320-
}
321-
322-
for (ControlledJob controlledJob : jobList) {
323-
if (controlledJob.getDependentJobs() != null
324-
&& controlledJob.getDependentJobs().size() != processedMap.get(
325-
controlledJob).size()) {
326-
cyclePresent = true;
327-
LOG.error("Job control has circular dependency for the job "
328-
+ controlledJob.getJobName());
329-
break;
330-
}
331-
}
332-
return cyclePresent;
333-
}
334-
335-
private boolean hasInComingEdge(ControlledJob controlledJob,
336-
List<ControlledJob> controlledJobList,
337-
HashMap<ControlledJob, List<ControlledJob>> processedMap) {
338-
boolean hasIncomingEdge = false;
339-
for (ControlledJob k : controlledJobList) {
340-
if (k != controlledJob && k.getDependentJobs() != null
341-
&& !processedMap.get(k).contains(controlledJob)
342-
&& k.getDependentJobs().contains(controlledJob)) {
343-
hasIncomingEdge = true;
344-
break;
345-
}
346-
}
347-
return hasIncomingEdge;
348-
349-
}
350284
}

hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/lib/jobcontrol/TestJobControl.java

Lines changed: 0 additions & 59 deletions
This file was deleted.

0 commit comments

Comments
 (0)