12073: Prioritize stale node records that have a slot_number when
[arvados.git] / services / nodemanager / arvnodeman / daemon.py
index d8087a1dc1cf0d7472acc1c19e429dd36c72dacb..ca3029d9e1bc3c376b119cca367b3767f3a8bb45 100644 (file)
@@ -78,7 +78,10 @@ class _ArvadosNodeTracker(_BaseNodeTracker):
     item_key = staticmethod(lambda arvados_node: arvados_node['uuid'])
 
     def find_stale_node(self, stale_time):
-        for record in self.nodes.itervalues():
+        # Try to select a stale node record that have an assigned slot first
+        for record in sorted(self.nodes.itervalues(),
+                             key=lambda r: r.arvados_node['slot_number'],
+                             reverse=True):
             node = record.arvados_node
             if (not cnode.timestamp_fresh(cnode.arvados_node_mtime(node),
                                           stale_time) and