hive-0003
This commit is contained in:
parent
7e7cd2945a
commit
0fb709cb72
11 changed files with 1163 additions and 6 deletions
|
|
@ -1,5 +1,4 @@
|
|||
# UNDF: UNDF-2026-000000112
|
||||
# hive-0001: TaskTracker.updateTaskCount ArrayList visited O(T²) in REPL DAG traversal
|
||||
# hive-0003: TaskTracker.updateTaskCount ArrayList visited O(T²) in REPL DAG traversal
|
||||
|
||||
## Classification
|
||||
- **Severity**: MEDIUM
|
||||
|
|
@ -99,10 +98,8 @@ private void updateTaskCount(Task<?> task, Set<Task<?>> visited) {
|
|||
```diff
|
||||
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/util/TaskTracker.java
|
||||
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/repl/util/TaskTracker.java
|
||||
@@ -1,5 +1,6 @@
|
||||
import java.util.ArrayList;
|
||||
@@ imports @@
|
||||
+import java.util.HashSet;
|
||||
import java.util.List;
|
||||
+import java.util.Set;
|
||||
|
||||
public void addTask(Task<?> task) {
|
||||
|
|
@ -118,7 +115,12 @@ private void updateTaskCount(Task<?> task, Set<Task<?>> visited) {
|
|||
for (Task<?> task : taskList) {
|
||||
if (!visited.contains(task)) {
|
||||
tasks.add(task);
|
||||
@@ -87,12 +87,12 @@
|
||||
updateTaskCount(task, visited);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void addDependentTask(Task<?> dependent) {
|
||||
if (tasks.isEmpty()) {
|
||||
addTask(dependent);
|
||||
} else {
|
||||
|
|
@ -135,4 +137,12 @@ private void updateTaskCount(Task<?> task, Set<Task<?>> visited) {
|
|||
numberOfTasks += 1;
|
||||
visited.add(task);
|
||||
if (task.getChildTasks() != null) {
|
||||
for (Task<?> childTask : task.getChildTasks()) {
|
||||
if (visited.contains(childTask)) {
|
||||
continue;
|
||||
}
|
||||
updateTaskCount(childTask, visited);
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue