diff --git a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestTriggersMoveWorkloadManager.java b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestTriggersMoveWorkloadManager.java index 8aca2a6..8402853 100644 --- a/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestTriggersMoveWorkloadManager.java +++ b/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestTriggersMoveWorkloadManager.java @@ -111,6 +111,7 @@ public void testTriggerMoveAndKill() throws Exception { errCaptureExpect.add("\"violationMsg\" : \"Trigger " + moveTrigger + " violated"); // violation in ETL queue errCaptureExpect.add("\"violationMsg\" : \"Trigger " + killTrigger + " violated"); + errCaptureExpect.add("\"subscribedCounters\" : [ \"EXECUTION_TIME\" ]"); runQueryWithTrigger(query, setCmds, killTrigger + " violated", errCaptureExpect); } @@ -141,6 +142,7 @@ public void testTriggerMoveEscapeKill() throws Exception { errCaptureExpect.add("\"name\" : \"slow_query_kill\""); // violation in BI queue errCaptureExpect.add("\"violationMsg\" : \"Trigger " + moveTrigger + " violated"); + errCaptureExpect.add("\"subscribedCounters\" : [ \"HDFS_BYTES_READ\", \"EXECUTION_TIME\" ]"); runQueryWithTrigger(query, setCmds, null, errCaptureExpect); } @@ -183,6 +185,7 @@ public void testTriggerMoveBackKill() throws Exception { errCaptureExpect.add("\"violationMsg\" : \"Trigger " + moveTrigger2 + " violated"); // violation in BI queue errCaptureExpect.add("\"violationMsg\" : \"Trigger " + killTrigger + " violated"); + errCaptureExpect.add("\"subscribedCounters\" : [ \"HDFS_BYTES_READ\", \"EXECUTION_TIME\", \"SHUFFLE_BYTES\" ]"); runQueryWithTrigger(query, setCmds, killTrigger + " violated", errCaptureExpect); } @@ -219,6 +222,7 @@ public void testTriggerMoveBackKill() throws Exception { // errCaptureExpect.add("\"violationMsg\" : \"Trigger " + moveTrigger1 + " violated"); // // violation in ETL queue // errCaptureExpect.add("\"violationMsg\" : \"Trigger " + killTrigger + " violated"); +// errCaptureExpect.add("\"subscribedCounters\" : [ \"HDFS_BYTES_READ\", \"HDFS_BYTES_WRITTEN\" ]"); // runQueryWithTrigger(query, setCmds, killTrigger + " violated", errCaptureExpect); // } @@ -249,6 +253,7 @@ public void testTriggerMoveConflictKill() throws Exception { errCaptureExpect.add("\"name\" : \"kill_big_read\""); // violation in BI queue errCaptureExpect.add("\"violationMsg\" : \"Trigger " + killTrigger + " violated"); + errCaptureExpect.add("\"subscribedCounters\" : [ \"HDFS_BYTES_READ\" ]"); runQueryWithTrigger(query, setCmds, killTrigger + " violated", errCaptureExpect); } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/wm/WmContext.java b/ql/src/java/org/apache/hadoop/hive/ql/wm/WmContext.java index 7a7ef50..d09bf89 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/wm/WmContext.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/wm/WmContext.java @@ -85,8 +85,7 @@ public void addTriggers(final List triggers) { for (Trigger trigger : triggers) { counters.add(trigger.getExpression().getCounterLimit().getName()); } - setSubscribedCounters(counters); - setCurrentCounters(new HashMap<>()); + addSubscribedCounters(counters); } } @@ -106,6 +105,13 @@ public void setSubscribedCounters(final Set subscribedCounters) { this.subscribedCounters = subscribedCounters; } + public void addSubscribedCounters(final Set moreCounters) { + if (subscribedCounters == null) { + subscribedCounters = new HashSet<>(); + } + subscribedCounters.addAll(moreCounters); + } + public Map getCurrentCounters() { return currentCounters; }