Argo: Nested steps run with incorrect parameters

Created on 25 Oct 2019  路  12Comments  路  Source: argoproj/argo

Is this a BUG REPORT or FEATURE REQUEST?:
Bug report

What happened:
If you execute the parallelism-nested.yaml example then the pods with a seq-id of b, c or d all have a parallel-id of 1

What you expected to happen:
pods with a seq-id of b, c or d all to have all parallel ids (1, 2, 3 and 4).

How to reproduce it (as minimally and precisely as possible):
argo submit parallelism-nested.yaml
then:
argo get <workflow-id> -o yaml

There will be multiple pods in the Status section with seq-id of b and parallel id of 1, there should only be one.

Anything else we need to know?:
This looks to be related to https://github.com/argoproj/argo/pull/1552

storedTemplates contains the following, with seq-id hardcoded:

    /seq-worker:
      arguments: {}
      inputs: {}
      metadata: {}
      name: seq-worker
      outputs: {}
      parallelism: 1
      steps:
      - - arguments:
            parameters:
            - name: parallel-id
              value: "1"
            - name: seq-id
              value: '{{item}}'
          name: seq-step
          template: one-job
          withParam: |
            ["a","b","c","d"]

Environment:

  • Argo version: master
$ argo version
  • Kubernetes version : 1.12
bug

Most helpful comment

Hello everyone v2.4.3 was just released with a fix for this issue, please take a look! Thank you for your patience and thank you to @dtaniwaki for working on this fix!

All 12 comments

@dtaniwaki fyi, I think this relates to your PR

Hi sir, When this bug fix will release? Hope soon. Many thanks.

@dtaniwaki is refactoring the store template feature. This will close most of the bugs.

I tried to downgrade the version to 2.4.0, from 2.4.2, and seems the retry feature has some bug as well.

@NirvanaZA could you elaborate on the bug with the retry feature?

Another minimal example to illustrate what appears to be the same problem:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: steps-
spec:
  entrypoint: steps
  templates:
  - name: print
    inputs:
      parameters:
      - name: message
    container:
      image: alpine:latest
      command: [sh, -c]
      args: ["echo {{inputs.parameters.message}}"]
  - name: print-twice
    inputs:
      parameters:
      - name: message
    steps:
    - - name: print1
        template: print
        arguments:
          parameters:
          - name: message
            value: "{{inputs.parameters.message}}"
    - - name: print2
        template: print
        arguments:
          parameters:
          - name: message
            value: "{{inputs.parameters.message}}"
  - name: steps
    steps:
    - - name: hello
        template: print-twice
        arguments:
          parameters:
          - name: message
            value: hello
    - - name: goodbye
        template: print-twice
        arguments:
          parameters:
          - name: message
            value: goodbye

On Argo 2.4.1, this has the expected behavior. Workflow logs:

print1: hello
print2: hello
print1: goodbye
print2: goodbye

On Argo 2.4.2, the message for the last one is passed incorrectly:

print1: hello
print2: hello
print1: goodbye
print2: hello

Just FYI we are also seeing issues with when statements getting the wrong parameters with a nested setup. It works with 2.4.0-rc1 but is broken after that, so pretty certain it is related to that same change that is affected this ticket.

FYI after creating and deploying an argo controller image with https://github.com/argoproj/argo/pull/1744 it did fix the issues we were seeing with parameter passing, but now the podSpecPatch does not get applied or even stored with a workflow.

I.E. after submitting a workflow with a task that has a podSpecPatch it is not found anywhere within the workflow obtained by argo get <workflow-ID> -o yaml

@simonwa7 Could you take a look at @dtaniwaki's comments regarding your issue? https://github.com/argoproj/argo/pull/1744#issuecomment-553455599

For those blocked by this regression: I would consider building #1744 into an image until the PR goes through review and a release is made hopefully sometime next week.

For those blocked by this regression: I would consider building #1744 into an image until the PR goes through review and a release is made hopefully sometime next week.

馃憤 Waiting for the new release.

Hello everyone v2.4.3 was just released with a fix for this issue, please take a look! Thank you for your patience and thank you to @dtaniwaki for working on this fix!

Was this page helpful?
0 / 5 - 0 ratings