This is an automated email from the ASF dual-hosted git repository. kturner pushed a commit to branch 1451-external-compactions-feature in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/1451-external-compactions-feature by this push: new a69d617 Fix queue summary class a69d617 is described below commit a69d6171076244386e7405a1edb39870c4194e93 Author: Keith Turner <ktur...@apache.org> AuthorDate: Tue Apr 20 10:06:56 2021 -0400 Fix queue summary class --- .../apache/accumulo/coordinator/QueueSummaries.java | 19 +++++++++++-------- .../accumulo/coordinator/QueueSummariesTest.java | 8 ++++++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/server/compaction-coordinator/src/main/java/org/apache/accumulo/coordinator/QueueSummaries.java b/server/compaction-coordinator/src/main/java/org/apache/accumulo/coordinator/QueueSummaries.java index e1caa8f..0d0fe9a 100644 --- a/server/compaction-coordinator/src/main/java/org/apache/accumulo/coordinator/QueueSummaries.java +++ b/server/compaction-coordinator/src/main/java/org/apache/accumulo/coordinator/QueueSummaries.java @@ -56,16 +56,13 @@ public class QueueSummaries { while (iter.hasNext()) { Entry<Long,TreeSet<TServerInstance>> next = iter.next(); if (next.getValue().isEmpty()) { - iter.remove(); - } else { - return next; + throw new IllegalStateException( + "Unexpected empty tserver set for queue " + queue + " and prio " + next.getKey()); } + return next; } - QUEUES.remove(queue); - - return null; - + throw new IllegalStateException("Unexpected empty map for queue " + queue); } static class PrioTserver { @@ -187,7 +184,13 @@ public class QueueSummaries { if (null != m) { TreeSet<TServerInstance> tservers = m.get(qp.getPriority()); if (null != tservers) { - tservers.remove(tsi); + if (tservers.remove(tsi) && tservers.isEmpty()) { + m.remove(qp.getPriority()); + } + + if (m.isEmpty()) { + QUEUES.remove(qp.getQueue()); + } } } }); diff --git a/server/compaction-coordinator/src/test/java/org/apache/accumulo/coordinator/QueueSummariesTest.java b/server/compaction-coordinator/src/test/java/org/apache/accumulo/coordinator/QueueSummariesTest.java index d480a87..88d40ca 100644 --- a/server/compaction-coordinator/src/test/java/org/apache/accumulo/coordinator/QueueSummariesTest.java +++ b/server/compaction-coordinator/src/test/java/org/apache/accumulo/coordinator/QueueSummariesTest.java @@ -180,5 +180,13 @@ public class QueueSummariesTest { Assert.assertNull(queueSum.getNextTserver("q2")); Assert.assertNull(queueSum.getNextTserver("q3")); } + + queueSum.remove(Set.of(ntsi("ts1"))); + + for (int i = 0; i < 3; i++) { + Assert.assertNull(queueSum.getNextTserver("q1")); + Assert.assertNull(queueSum.getNextTserver("q2")); + Assert.assertNull(queueSum.getNextTserver("q3")); + } } }