21216: Make memoryRetryMultiplier optional and set a default value 21216-multiplier-typo-fix
authorPeter Amstutz <peter.amstutz@curii.com>
Tue, 9 Jan 2024 22:22:32 +0000 (17:22 -0500)
committerPeter Amstutz <peter.amstutz@curii.com>
Thu, 11 Jan 2024 14:35:02 +0000 (09:35 -0500)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz@curii.com>

doc/user/cwl/cwl-extensions.html.textile.liquid
sdk/cwl/arvados_cwl/arv-cwl-schema-v1.0.yml
sdk/cwl/arvados_cwl/arv-cwl-schema-v1.1.yml
sdk/cwl/arvados_cwl/arv-cwl-schema-v1.2.yml
sdk/cwl/arvados_cwl/arvcontainer.py

index e05072ddf6843a9a01599d4854317a49da62b4a1..3c8366721d86da6aafed9071729ad5f9d720034a 100644 (file)
@@ -73,7 +73,7 @@ hints:
     usePreemptible: true
 
   arv:OutOfMemoryRetry:
-    memoryRetryMultipler: 2
+    memoryRetryMultiplier: 2
     memoryErrorRegex: "custom memory error"
 {% endcodeblock %}
 
@@ -195,7 +195,7 @@ table(table table-bordered table-condensed).
 
 h2(#OutOfMemoryRetry). arv:OutOfMemoryRetry
 
-Specify that when a workflow step appears to have failed because it did not request enough RAM, it should be re-submitted with more RAM.  Out of memory conditions are detected either by the container being unexpectedly killed (exit code 137) or by matching a pattern in the container's output (see @memoryErrorRegex@).  Retrying will increase the base RAM request by the value of @memoryRetryMultipler@.  For example, if the original RAM request was 10 GiB and the multiplier is 1.5, then it will re-submit with 15 GiB.
+Specify that when a workflow step appears to have failed because it did not request enough RAM, it should be re-submitted with more RAM.  Out of memory conditions are detected either by the container being unexpectedly killed (exit code 137) or by matching a pattern in the container's output (see @memoryErrorRegex@).  Retrying will increase the base RAM request by the value of @memoryRetryMultiplier@.  For example, if the original RAM request was 10 GiB and the multiplier is 1.5, then it will re-submit with 15 GiB.
 
 Containers are only re-submitted once.  If it fails a second time after increasing RAM, then the worklow step will still fail.
 
@@ -203,7 +203,7 @@ Also note that expressions that use @$(runtime.ram)@ (such as dynamic command li
 
 table(table table-bordered table-condensed).
 |_. Field |_. Type |_. Description |
-|memoryRetryMultipler|float|Required, the retry will multiply the base memory request by this factor to get the retry memory request.|
+|memoryRetryMultiplier|float|Optional, default value is 2.  The retry will multiply the base memory request by this factor to get the retry memory request.|
 |memoryErrorRegex|string|Optional, a custom regex that, if found in the stdout, stderr or crunch-run logging of a program, will trigger a retry with greater RAM.  If not provided, the default pattern matches "out of memory" (with or without spaces), "memory error" (with or without spaces), "bad_alloc" and "container using over 90% of memory".|
 
 h2. arv:dockerCollectionPDH
index 450864df30474f1d4fa23ea89d591be9e5e505d7..aeb41db568722e35ef045a407117f6864f213a95 100644 (file)
@@ -479,7 +479,7 @@ $graph:
         should be retried with more RAM.  By default, searches for the
         substrings 'bad_alloc' and 'OutOfMemory'.
     - name: memoryRetryMultiplier
-      type: float
+      type: float?
       doc: |
         If the container failed on its first run, re-submit the
         container with the RAM request multiplied by this factor.
index f33b94e69dada694a1d60aa16cdf3534d9f3334a..0e51d50080ce032897132322635a7d2a0941aaf9 100644 (file)
@@ -422,7 +422,7 @@ $graph:
         should be retried with more RAM.  By default, searches for the
         substrings 'bad_alloc' and 'OutOfMemory'.
     - name: memoryRetryMultiplier
-      type: float
+      type: float?
       doc: |
         If the container failed on its first run, re-submit the
         container with the RAM request multiplied by this factor.
index 0c6035c56f0cb2a6778a88d9ea7db81e7ebfbe64..a753579c9aa7bbd7c945b813e1be9d689350d084 100644 (file)
@@ -425,7 +425,7 @@ $graph:
         should be retried with more RAM.  By default, searches for the
         substrings 'bad_alloc' and 'OutOfMemory'.
     - name: memoryRetryMultiplier
-      type: float
+      type: float?
       doc: |
         If the container failed on its first run, re-submit the
         container with the RAM request multiplied by this factor.
index 1f379ccec6e7303b5f5c229207ede89246025190..584ca1713abfbcd74d3bd845f8bd8101ea283cd0 100644 (file)
@@ -375,6 +375,8 @@ class ArvadosContainer(JobBase):
                 ram_multiplier.append(oom_retry_req.get('memoryRetryMultiplier'))
             elif oom_retry_req.get('memoryRetryMultipler'):
                 ram_multiplier.append(oom_retry_req.get('memoryRetryMultipler'))
+            else:
+                ram_multiplier.append(2)
 
         if runtimeContext.runnerjob.startswith("arvwf:"):
             wfuuid = runtimeContext.runnerjob[6:runtimeContext.runnerjob.index("#")]