Allow multiple clusters to use loopback driver on same host.
authorTom Clegg <tom@curii.com>
Fri, 24 Jun 2022 05:33:11 +0000 (01:33 -0400)
committerTom Clegg <tom@curii.com>
Fri, 24 Jun 2022 05:33:11 +0000 (01:33 -0400)
If they don't ignore foreign UUIDs, they kill one another's processes
because A's container is never in B's queue.

refs #15370

Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>

lib/dispatchcloud/worker/worker.go

index 1c8d62c20ee40571e3f1789451e3b46d148abf4f..b01a820cd619b172538b725d689d0323897611d5 100644 (file)
@@ -418,6 +418,12 @@ func (wkr *worker) probeRunning() (running []string, reportsBroken, ok bool) {
                        // empty string following final newline
                } else if s == "broken" {
                        reportsBroken = true
+               } else if !strings.HasPrefix(s, wkr.wp.cluster.ClusterID) {
+                       // Ignore crunch-run processes that belong to
+                       // a different cluster (e.g., a single host
+                       // running multiple clusters with the loopback
+                       // driver)
+                       continue
                } else if toks := strings.Split(s, " "); len(toks) == 1 {
                        running = append(running, s)
                } else if toks[1] == "stale" {