From 8b150a904765f79fbe99d848a952b8513723f42e Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Thu, 19 Oct 2023 09:25:57 -0400 Subject: [PATCH] Fix for post group failures A node failure after group failure would erase the group from range. Further, correct an issue where an empty nodeset would trigger a bad behavior. --- confluent_server/confluent/noderange.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/confluent_server/confluent/noderange.py b/confluent_server/confluent/noderange.py index dcf0a1cb..df4552b8 100644 --- a/confluent_server/confluent/noderange.py +++ b/confluent_server/confluent/noderange.py @@ -221,22 +221,27 @@ class ReverseNodeRange(object): subsetgroups.sort(key=humanify_nodename) groupchunks = group_elements(subsetgroups) for gc in groupchunks: + if not gc: + continue bracketer = Bracketer(gc[0]) for chnk in gc[1:]: bracketer.extend(chnk) ranges.append(bracketer.range) except Exception: subsetgroups.sort() + ranges.extend(subsetgroups) try: nodes = sorted(self.nodes, key=humanify_nodename) nodechunks = group_elements(nodes) for nc in nodechunks: + if not nc: + continue bracketer = Bracketer(nc[0]) for chnk in nc[1:]: bracketer.extend(chnk) ranges.append(bracketer.range) except Exception: - ranges = sorted(self.nodes) + ranges.extend(sorted(self.nodes)) return ','.join(ranges)