diff --git a/changelog/985.bugfix.rst b/changelog/985.bugfix.rst new file mode 100644 index 00000000..89401d59 --- /dev/null +++ b/changelog/985.bugfix.rst @@ -0,0 +1 @@ +De-flaked test_workqueue_ordered_by_size. diff --git a/src/xdist/scheduler/loadscope.py b/src/xdist/scheduler/loadscope.py index 73162dcd..78ec636a 100644 --- a/src/xdist/scheduler/loadscope.py +++ b/src/xdist/scheduler/loadscope.py @@ -394,11 +394,12 @@ def schedule(self) -> None: unused_node.shutdown() # Assign initial workload - for node in self.nodes: + # Sort the nodes to keep assingment consistent (#985) + for node in sorted(self.nodes, key=lambda node: node.gateway.id): self._assign_work_unit(node) # Ensure nodes start with at least two work units if possible (#277) - for node in self.nodes: + for node in sorted(self.nodes, key=lambda node: node.gateway.id): self._reschedule(node) # Initial distribution sent all tests, start node shutdown