Arvados-DCO-1.1-Signed-off-by: Radhika Chippada <radhika@curoverse.com>
[arvados.git] / services / crunch-dispatch-slurm / crunch-dispatch-slurm.go
index 71852bffa7f38eb13ced6ffdebc683290c5b1b0f..30cbb79dc186de45366d648e2a26e42266ee7de3 100644 (file)
@@ -1,3 +1,7 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
 package main
 
 // Dispatcher service for Crunch that submits containers to the slurm queue.
@@ -153,7 +157,9 @@ func sbatchFunc(container arvados.Container) *exec.Cmd {
 
        var disk int64
        for _, m := range container.Mounts {
-               disk += m.Capacity
+               if m.Kind == "tmp" {
+                       disk += m.Capacity
+               }
        }
        disk = int64(math.Ceil(float64(disk) / float64(1048576)))
 
@@ -224,13 +230,21 @@ func run(disp *dispatch.Dispatcher, ctr arvados.Container, status <-chan arvados
        if ctr.State == dispatch.Locked && !sqCheck.HasUUID(ctr.UUID) {
                log.Printf("Submitting container %s to slurm", ctr.UUID)
                if err := submit(disp, ctr, theConfig.CrunchRunCommand); err != nil {
-                       log.Printf("Error submitting container %s to slurm: %s", ctr.UUID, err)
+                       text := fmt.Sprintf("Error submitting container %s to slurm: %s", ctr.UUID, err)
+                       log.Print(text)
+
+                       lr := arvadosclient.Dict{"log": arvadosclient.Dict{
+                               "object_uuid": ctr.UUID,
+                               "event_type":  "dispatch",
+                               "properties":  map[string]string{"text": text}}}
+                       disp.Arv.Create("logs", lr, nil)
+
                        disp.Unlock(ctr.UUID)
                        return
                }
        }
 
-       log.Printf("Start monitoring container %s", ctr.UUID)
+       log.Printf("Start monitoring container %v in state %q", ctr.UUID, ctr.State)
        defer log.Printf("Done monitoring container %s", ctr.UUID)
 
        // If the container disappears from the slurm queue, there is