{
    "apiVersion": "v1",
    "items": [
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "retry-pipeline-timeout-b0tb/snapshot-sample-2jwx-d499148-tbjtl",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pac.test.appstudio.openshift.io/sha": "d49914874789147eb2de9bb6a12cd5d150bfff92",
                    "pac.test.appstudio.openshift.io/url-repository": "https://github.com/redhat-appstudio-qe/dc-metro-map-release",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "retry-pipeline-timeout-managed/results/1ca0c859-27e0-44d3-b145-b0aaf609d75a/records/e544f399-2f48-4cc0-bf3c-e0ff9ec655b3",
                    "results.tekton.dev/result": "retry-pipeline-timeout-managed/results/1ca0c859-27e0-44d3-b145-b0aaf609d75a",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-10-09T09:21:01Z",
                "deletionGracePeriodSeconds": 0,
                "deletionTimestamp": "2026-10-09T09:25:02Z",
                "finalizers": [
                    "results.tekton.dev/taskrun"
                ],
                "generation": 2,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-2jwx",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-2jwx-d499148-tbjtl",
                    "release.appstudio.openshift.io/namespace": "retry-pipeline-timeout-b0tb",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "retry-e2e-managed",
                    "tekton.dev/pipelineRun": "managed-qqcnr",
                    "tekton.dev/pipelineRunUID": "1ca0c859-27e0-44d3-b145-b0aaf609d75a",
                    "tekton.dev/pipelineTask": "task-01"
                },
                "name": "managed-qqcnr-task-01",
                "namespace": "retry-pipeline-timeout-managed",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-qqcnr",
                        "uid": "1ca0c859-27e0-44d3-b145-b0aaf609d75a"
                    }
                ],
                "resourceVersion": "24862",
                "uid": "e544f399-2f48-4cc0-bf3c-e0ff9ec655b3"
            },
            "spec": {
                "params": [
                    {
                        "name": "failMode",
                        "value": "pipeline-timeout"
                    },
                    {
                        "name": "failOnTask",
                        "value": "task-02"
                    }
                ],
                "serviceAccountName": "release-service-account",
                "taskSpec": {
                    "params": [
                        {
                            "name": "failMode",
                            "type": "string"
                        },
                        {
                            "name": "failOnTask",
                            "type": "string"
                        }
                    ],
                    "steps": [
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "100m",
                                    "memory": "64Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-01-step-01",
                            "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nFAIL_MODE=\"$(params.failMode)\"\nFAIL_ON_TASK=\"$(params.failOnTask)\"\n\n# Only inject failures into the selected task.\n[[ \"${FAIL_ON_TASK}\" == \"task-01\" ]] || exit 0\n\necho \"task-01-step-01: failMode=${FAIL_MODE}\"\n\ncase \"${FAIL_MODE}\" in\n  error)\n    exit 1\n    ;;\n  oom)\n    # Trigger OOM only when the task is still running with the\n    # original memory limit. After retry mitigation the limit\n    # should be increased and this path should no longer OOM.\n    LIMIT=\"max\"\n    [[ -r /sys/fs/cgroup/memory.max ]] \u0026\u0026 read -r LIMIT \u003c /sys/fs/cgroup/memory.max\n\n    THRESHOLD=104857600 # 100 Mi\n\n    if [[ \"${LIMIT}\" != \"max\" ]] \u0026\u0026 (( LIMIT \u003c THRESHOLD )); then\n      echo \"limit ${LIMIT} \u003c ${THRESHOLD}: triggering OOMKill\"\n\n      X=$(dd if=/dev/zero bs=1M count=150 status=none | tr '\\0' 'a')\n      echo \"${#X}\"\n    else\n      echo \"limit ${LIMIT} sufficient\"\n    fi\n    ;;\n  task-timeout)\n    # Sleep longer than the task timeout. Which is set to 1 minute.\n    sleep 90\n    ;;\n  none)\n    ;;\n  *)\n    echo \"unknown fail mode: ${FAIL_MODE}\" \u003e\u00262\n    exit 1\n    ;;\nesac\n"
                        },
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "32Mi"
                                },
                                "requests": {
                                    "cpu": "50m",
                                    "memory": "32Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-01-step-02",
                            "script": "#!/usr/bin/env bash\necho \"task-01-step-02: complete\"\n"
                        }
                    ]
                },
                "timeout": "1m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-10-09T09:21:06Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-10-09T09:21:06Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-qqcnr-task-01-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-10-09T09:21:01Z",
                "steps": [
                    {
                        "container": "step-task-01-step-01",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                        "name": "task-01-step-01",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://e7ab0c013abcc122a346a3605bdec5a977a90c4b083caaefb55868916d73c108",
                            "exitCode": 0,
                            "finishedAt": "2026-10-09T09:21:05Z",
                            "reason": "Completed",
                            "startedAt": "2026-10-09T09:21:05Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-task-01-step-02",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                        "name": "task-01-step-02",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://5ee0a447755474da715a1067cff3dfbd45b3fc903c38a62fcb7b1d051c4acb71",
                            "exitCode": 0,
                            "finishedAt": "2026-10-09T09:21:05Z",
                            "reason": "Completed",
                            "startedAt": "2026-10-09T09:21:05Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "params": [
                        {
                            "name": "failMode",
                            "type": "string"
                        },
                        {
                            "name": "failOnTask",
                            "type": "string"
                        }
                    ],
                    "steps": [
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "100m",
                                    "memory": "64Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-01-step-01",
                            "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nFAIL_MODE=\"pipeline-timeout\"\nFAIL_ON_TASK=\"task-02\"\n\n# Only inject failures into the selected task.\n[[ \"${FAIL_ON_TASK}\" == \"task-01\" ]] || exit 0\n\necho \"task-01-step-01: failMode=${FAIL_MODE}\"\n\ncase \"${FAIL_MODE}\" in\n  error)\n    exit 1\n    ;;\n  oom)\n    # Trigger OOM only when the task is still running with the\n    # original memory limit. After retry mitigation the limit\n    # should be increased and this path should no longer OOM.\n    LIMIT=\"max\"\n    [[ -r /sys/fs/cgroup/memory.max ]] \u0026\u0026 read -r LIMIT \u003c /sys/fs/cgroup/memory.max\n\n    THRESHOLD=104857600 # 100 Mi\n\n    if [[ \"${LIMIT}\" != \"max\" ]] \u0026\u0026 (( LIMIT \u003c THRESHOLD )); then\n      echo \"limit ${LIMIT} \u003c ${THRESHOLD}: triggering OOMKill\"\n\n      X=$(dd if=/dev/zero bs=1M count=150 status=none | tr '\\0' 'a')\n      echo \"${#X}\"\n    else\n      echo \"limit ${LIMIT} sufficient\"\n    fi\n    ;;\n  task-timeout)\n    # Sleep longer than the task timeout. Which is set to 1 minute.\n    sleep 90\n    ;;\n  none)\n    ;;\n  *)\n    echo \"unknown fail mode: ${FAIL_MODE}\" \u003e\u00262\n    exit 1\n    ;;\nesac\n"
                        },
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "32Mi"
                                },
                                "requests": {
                                    "cpu": "50m",
                                    "memory": "32Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-01-step-02",
                            "script": "#!/usr/bin/env bash\necho \"task-01-step-02: complete\"\n"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "retry-pipeline-timeout-b0tb/snapshot-sample-2jwx-d499148-tbjtl",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pac.test.appstudio.openshift.io/sha": "d49914874789147eb2de9bb6a12cd5d150bfff92",
                    "pac.test.appstudio.openshift.io/url-repository": "https://github.com/redhat-appstudio-qe/dc-metro-map-release",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "retry-pipeline-timeout-managed/results/1ca0c859-27e0-44d3-b145-b0aaf609d75a/records/b81c4529-4221-4d92-9075-f3498d23ec8e",
                    "results.tekton.dev/result": "retry-pipeline-timeout-managed/results/1ca0c859-27e0-44d3-b145-b0aaf609d75a",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-10-09T09:21:06Z",
                "deletionGracePeriodSeconds": 0,
                "deletionTimestamp": "2026-10-09T09:25:02Z",
                "finalizers": [
                    "results.tekton.dev/taskrun"
                ],
                "generation": 3,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-2jwx",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "0",
                    "release.appstudio.openshift.io/name": "snapshot-sample-2jwx-d499148-tbjtl",
                    "release.appstudio.openshift.io/namespace": "retry-pipeline-timeout-b0tb",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "retry-e2e-managed",
                    "tekton.dev/pipelineRun": "managed-qqcnr",
                    "tekton.dev/pipelineRunUID": "1ca0c859-27e0-44d3-b145-b0aaf609d75a",
                    "tekton.dev/pipelineTask": "task-02"
                },
                "name": "managed-qqcnr-task-02",
                "namespace": "retry-pipeline-timeout-managed",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-qqcnr",
                        "uid": "1ca0c859-27e0-44d3-b145-b0aaf609d75a"
                    }
                ],
                "resourceVersion": "24866",
                "uid": "b81c4529-4221-4d92-9075-f3498d23ec8e"
            },
            "spec": {
                "params": [
                    {
                        "name": "failMode",
                        "value": "pipeline-timeout"
                    },
                    {
                        "name": "failOnTask",
                        "value": "task-02"
                    }
                ],
                "serviceAccountName": "release-service-account",
                "status": "TaskRunCancelled",
                "statusMessage": "TaskRun cancelled as the PipelineRun it belongs to has timed out.",
                "taskSpec": {
                    "params": [
                        {
                            "name": "failMode",
                            "type": "string"
                        },
                        {
                            "name": "failOnTask",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {
                            "limits": {
                                "memory": "64Mi"
                            },
                            "requests": {
                                "cpu": "100m",
                                "memory": "64Mi"
                            }
                        },
                        "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c"
                    },
                    "steps": [
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "100m",
                                    "memory": "64Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-02-step-01",
                            "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nFAIL_MODE=\"$(params.failMode)\"\nFAIL_ON_TASK=\"$(params.failOnTask)\"\n\n# pipeline-timeout always runs from task-02 regardless of failOnTask.\nif [[ \"${FAIL_ON_TASK}\" != \"task-02\" \u0026\u0026 \"${FAIL_MODE}\" != \"pipeline-timeout\" ]]; then\n  echo \"task-02: complete\"\n  exit 0\nfi\n\necho \"task-02-step-01: failMode=${FAIL_MODE}\"\n\ncase \"${FAIL_MODE}\" in\n  pipeline-timeout)\n    # Sleep past the pipeline level pipeline/tasks timeout. This is used to verify\n    # that retry mitigation updates both pipeline and tasks timeouts\n    # and allows the pipelineRun to complete on retry.\n    echo \"task-02-step-01: sleeping 120s\"\n    sleep 120\n    ;;\n  error)\n    exit 1\n    ;;\n  oom)\n    # Trigger OOM only when the task is still running with the\n    # original memory limit. After retry mitigation the limit\n    # should be increased and this path should no longer OOM.\n    LIMIT=\"max\"\n    [[ -r /sys/fs/cgroup/memory.max ]] \u0026\u0026 read -r LIMIT \u003c /sys/fs/cgroup/memory.max\n\n    THRESHOLD=104857600 # 100 Mi\n\n    if [[ \"${LIMIT}\" != \"max\" ]] \u0026\u0026 (( LIMIT \u003c THRESHOLD )); then\n      echo \"limit ${LIMIT} \u003c ${THRESHOLD}: triggering OOMKill\"\n      X=$(dd if=/dev/zero bs=1M count=150 status=none | tr '\\0' 'a')\n      echo \"${#X}\"\n    else\n      echo \"limit ${LIMIT} sufficient\"\n    fi\n    ;;\n  oom-always)\n  # Always trigger an OOMKill regardless of the memory limit.\n  # This is used to verify that retry mitigation cannot fix\n  # the failure even after resource requests/limits are increased.\n  \n  X=$(dd if=/dev/zero bs=1M count=2048 status=none | tr '\\0' 'a')\n  echo \"${#X}\"\n  ;;\n  none)\n    ;;\n  *)\n    echo \"unknown fail mode: ${FAIL_MODE}\" \u003e\u00262\n    exit 1\n    ;;\nesac\n"
                        },
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "100m",
                                    "memory": "64Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-02-step-02",
                            "script": "#!/usr/bin/env bash\necho \"task-02-step-02: complete\"\n"
                        }
                    ]
                },
                "timeout": "1h0m0s"
            },
            "status": {
                "completionTime": "2026-10-09T09:22:25Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-10-09T09:22:25Z",
                        "message": "TaskRun \"managed-qqcnr-task-02\" was cancelled. TaskRun cancelled as the PipelineRun it belongs to has timed out.",
                        "reason": "TaskRunCancelled",
                        "status": "False",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-qqcnr-task-02-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-10-09T09:21:06Z",
                "steps": [
                    {
                        "container": "step-task-02-step-01",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                        "name": "task-02-step-01",
                        "provenance": {},
                        "terminated": {
                            "exitCode": 1,
                            "finishedAt": "2026-10-09T09:22:25Z",
                            "message": "Step task-02-step-01 terminated as pod managed-qqcnr-task-02-pod is terminated",
                            "reason": "TaskRunCancelled",
                            "startedAt": "2026-10-09T09:21:08Z"
                        },
                        "terminationReason": "TaskRunCancelled"
                    },
                    {
                        "container": "step-task-02-step-02",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                        "name": "task-02-step-02",
                        "provenance": {},
                        "terminated": {
                            "exitCode": 1,
                            "finishedAt": "2026-10-09T09:22:25Z",
                            "message": "Step task-02-step-02 terminated as pod managed-qqcnr-task-02-pod is terminated",
                            "reason": "TaskRunCancelled",
                            "startedAt": "2026-10-09T09:21:08Z"
                        },
                        "terminationReason": "TaskRunCancelled"
                    }
                ],
                "taskSpec": {
                    "params": [
                        {
                            "name": "failMode",
                            "type": "string"
                        },
                        {
                            "name": "failOnTask",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {
                            "limits": {
                                "memory": "64Mi"
                            },
                            "requests": {
                                "cpu": "100m",
                                "memory": "64Mi"
                            }
                        },
                        "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c"
                    },
                    "steps": [
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "100m",
                                    "memory": "64Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-02-step-01",
                            "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nFAIL_MODE=\"pipeline-timeout\"\nFAIL_ON_TASK=\"task-02\"\n\n# pipeline-timeout always runs from task-02 regardless of failOnTask.\nif [[ \"${FAIL_ON_TASK}\" != \"task-02\" \u0026\u0026 \"${FAIL_MODE}\" != \"pipeline-timeout\" ]]; then\n  echo \"task-02: complete\"\n  exit 0\nfi\n\necho \"task-02-step-01: failMode=${FAIL_MODE}\"\n\ncase \"${FAIL_MODE}\" in\n  pipeline-timeout)\n    # Sleep past the pipeline level pipeline/tasks timeout. This is used to verify\n    # that retry mitigation updates both pipeline and tasks timeouts\n    # and allows the pipelineRun to complete on retry.\n    echo \"task-02-step-01: sleeping 120s\"\n    sleep 120\n    ;;\n  error)\n    exit 1\n    ;;\n  oom)\n    # Trigger OOM only when the task is still running with the\n    # original memory limit. After retry mitigation the limit\n    # should be increased and this path should no longer OOM.\n    LIMIT=\"max\"\n    [[ -r /sys/fs/cgroup/memory.max ]] \u0026\u0026 read -r LIMIT \u003c /sys/fs/cgroup/memory.max\n\n    THRESHOLD=104857600 # 100 Mi\n\n    if [[ \"${LIMIT}\" != \"max\" ]] \u0026\u0026 (( LIMIT \u003c THRESHOLD )); then\n      echo \"limit ${LIMIT} \u003c ${THRESHOLD}: triggering OOMKill\"\n      X=$(dd if=/dev/zero bs=1M count=150 status=none | tr '\\0' 'a')\n      echo \"${#X}\"\n    else\n      echo \"limit ${LIMIT} sufficient\"\n    fi\n    ;;\n  oom-always)\n  # Always trigger an OOMKill regardless of the memory limit.\n  # This is used to verify that retry mitigation cannot fix\n  # the failure even after resource requests/limits are increased.\n  \n  X=$(dd if=/dev/zero bs=1M count=2048 status=none | tr '\\0' 'a')\n  echo \"${#X}\"\n  ;;\n  none)\n    ;;\n  *)\n    echo \"unknown fail mode: ${FAIL_MODE}\" \u003e\u00262\n    exit 1\n    ;;\nesac\n"
                        },
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "100m",
                                    "memory": "64Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-02-step-02",
                            "script": "#!/usr/bin/env bash\necho \"task-02-step-02: complete\"\n"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "retry-pipeline-timeout-b0tb/snapshot-sample-2jwx-d499148-tbjtl",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pac.test.appstudio.openshift.io/sha": "d49914874789147eb2de9bb6a12cd5d150bfff92",
                    "pac.test.appstudio.openshift.io/url-repository": "https://github.com/redhat-appstudio-qe/dc-metro-map-release",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "retry-pipeline-timeout-managed/results/3a8b2042-9634-4bda-96c5-12db450aedfa/records/1fd3d8bf-5145-4a6c-a530-b2cb1cbaab56",
                    "results.tekton.dev/result": "retry-pipeline-timeout-managed/results/3a8b2042-9634-4bda-96c5-12db450aedfa",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-10-09T09:22:31Z",
                "deletionGracePeriodSeconds": 0,
                "deletionTimestamp": "2026-10-09T09:25:02Z",
                "finalizers": [
                    "results.tekton.dev/taskrun"
                ],
                "generation": 2,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-2jwx",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "1",
                    "release.appstudio.openshift.io/name": "snapshot-sample-2jwx-d499148-tbjtl",
                    "release.appstudio.openshift.io/namespace": "retry-pipeline-timeout-b0tb",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "retry-e2e-managed",
                    "tekton.dev/pipelineRun": "managed-wpqnq",
                    "tekton.dev/pipelineRunUID": "3a8b2042-9634-4bda-96c5-12db450aedfa",
                    "tekton.dev/pipelineTask": "collect-data"
                },
                "name": "managed-wpqnq-collect-data",
                "namespace": "retry-pipeline-timeout-managed",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-wpqnq",
                        "uid": "3a8b2042-9634-4bda-96c5-12db450aedfa"
                    }
                ],
                "resourceVersion": "24867",
                "uid": "1fd3d8bf-5145-4a6c-a530-b2cb1cbaab56"
            },
            "spec": {
                "params": [
                    {
                        "name": "releasePlanAdmission",
                        "value": "retry-pipeline-timeout-managed/demo"
                    }
                ],
                "serviceAccountName": "release-service-account",
                "taskSpec": {
                    "params": [
                        {
                            "name": "releasePlanAdmission",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "name": "failMode",
                            "type": "string"
                        },
                        {
                            "name": "failOnTask",
                            "type": "string"
                        }
                    ],
                    "steps": [
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "50m",
                                    "memory": "64Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "collect-data",
                            "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nDATA=$(get-resource releasePlanAdmission \"retry-pipeline-timeout-managed/demo\" |\n  jq '.spec.data // {}')\n\nFAIL_MODE=$(jq -r '.failMode // \"none\"' \u003c\u003c\u003c\"${DATA}\")\nFAIL_ON_TASK=$(jq -r '.failOnTask // \"task-01\"' \u003c\u003c\u003c\"${DATA}\")\n\nprintf '%s' \"${FAIL_MODE}\" \u003e \"$(results.failMode.path)\"\nprintf '%s' \"${FAIL_ON_TASK}\" \u003e \"$(results.failOnTask.path)\"\n"
                        }
                    ]
                },
                "timeout": "1h0m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-10-09T09:22:36Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-10-09T09:22:36Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-wpqnq-collect-data-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "results": [
                    {
                        "name": "failMode",
                        "type": "string",
                        "value": "pipeline-timeout"
                    },
                    {
                        "name": "failOnTask",
                        "type": "string",
                        "value": "task-02"
                    }
                ],
                "startTime": "2026-10-09T09:22:31Z",
                "steps": [
                    {
                        "container": "step-collect-data",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                        "name": "collect-data",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://663acf93604ef519f00e108a45da2a479c6a06467e0bfa558d8023a497855945",
                            "exitCode": 0,
                            "finishedAt": "2026-10-09T09:22:36Z",
                            "message": "[{\"key\":\"failMode\",\"value\":\"pipeline-timeout\",\"type\":1},{\"key\":\"failOnTask\",\"value\":\"task-02\",\"type\":1}]",
                            "reason": "Completed",
                            "startedAt": "2026-10-09T09:22:36Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "params": [
                        {
                            "name": "releasePlanAdmission",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "name": "failMode",
                            "type": "string"
                        },
                        {
                            "name": "failOnTask",
                            "type": "string"
                        }
                    ],
                    "steps": [
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "50m",
                                    "memory": "64Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "collect-data",
                            "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nDATA=$(get-resource releasePlanAdmission \"retry-pipeline-timeout-managed/demo\" |\n  jq '.spec.data // {}')\n\nFAIL_MODE=$(jq -r '.failMode // \"none\"' \u003c\u003c\u003c\"${DATA}\")\nFAIL_ON_TASK=$(jq -r '.failOnTask // \"task-01\"' \u003c\u003c\u003c\"${DATA}\")\n\nprintf '%s' \"${FAIL_MODE}\" \u003e \"/tekton/results/failMode\"\nprintf '%s' \"${FAIL_ON_TASK}\" \u003e \"/tekton/results/failOnTask\"\n"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "retry-pipeline-timeout-b0tb/snapshot-sample-2jwx-d499148-tbjtl",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pac.test.appstudio.openshift.io/sha": "d49914874789147eb2de9bb6a12cd5d150bfff92",
                    "pac.test.appstudio.openshift.io/url-repository": "https://github.com/redhat-appstudio-qe/dc-metro-map-release",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "retry-pipeline-timeout-managed/results/3a8b2042-9634-4bda-96c5-12db450aedfa/records/4b1cd906-6197-4428-9fcb-1fc4c78a7c1d",
                    "results.tekton.dev/result": "retry-pipeline-timeout-managed/results/3a8b2042-9634-4bda-96c5-12db450aedfa",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-10-09T09:24:46Z",
                "deletionGracePeriodSeconds": 0,
                "deletionTimestamp": "2026-10-09T09:25:02Z",
                "finalizers": [
                    "results.tekton.dev/taskrun"
                ],
                "generation": 2,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-2jwx",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "1",
                    "release.appstudio.openshift.io/name": "snapshot-sample-2jwx-d499148-tbjtl",
                    "release.appstudio.openshift.io/namespace": "retry-pipeline-timeout-b0tb",
                    "tekton.dev/memberOf": "finally",
                    "tekton.dev/pipeline": "retry-e2e-managed",
                    "tekton.dev/pipelineRun": "managed-wpqnq",
                    "tekton.dev/pipelineRunUID": "3a8b2042-9634-4bda-96c5-12db450aedfa",
                    "tekton.dev/pipelineTask": "finalize"
                },
                "name": "managed-wpqnq-finalize",
                "namespace": "retry-pipeline-timeout-managed",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-wpqnq",
                        "uid": "3a8b2042-9634-4bda-96c5-12db450aedfa"
                    }
                ],
                "resourceVersion": "24871",
                "uid": "4b1cd906-6197-4428-9fcb-1fc4c78a7c1d"
            },
            "spec": {
                "serviceAccountName": "release-service-account",
                "taskSpec": {
                    "steps": [
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "32Mi"
                                },
                                "requests": {
                                    "cpu": "50m",
                                    "memory": "32Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "finalize-step-01",
                            "script": "#!/usr/bin/env bash\necho \"finalize: complete\"\n"
                        }
                    ]
                },
                "timeout": "1h0m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-10-09T09:24:50Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-10-09T09:24:50Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-wpqnq-finalize-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-10-09T09:24:46Z",
                "steps": [
                    {
                        "container": "step-finalize-step-01",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                        "name": "finalize-step-01",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://6d9aa1bdb422e1f665e12c2cbb5f8df93d5673450ecc4a6010378960cc2b1724",
                            "exitCode": 0,
                            "finishedAt": "2026-10-09T09:24:49Z",
                            "reason": "Completed",
                            "startedAt": "2026-10-09T09:24:49Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "steps": [
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "32Mi"
                                },
                                "requests": {
                                    "cpu": "50m",
                                    "memory": "32Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "finalize-step-01",
                            "script": "#!/usr/bin/env bash\necho \"finalize: complete\"\n"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "retry-pipeline-timeout-b0tb/snapshot-sample-2jwx-d499148-tbjtl",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pac.test.appstudio.openshift.io/sha": "d49914874789147eb2de9bb6a12cd5d150bfff92",
                    "pac.test.appstudio.openshift.io/url-repository": "https://github.com/redhat-appstudio-qe/dc-metro-map-release",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "retry-pipeline-timeout-managed/results/3a8b2042-9634-4bda-96c5-12db450aedfa/records/3e40f670-3234-441a-8788-daa1ce8f3c1c",
                    "results.tekton.dev/result": "retry-pipeline-timeout-managed/results/3a8b2042-9634-4bda-96c5-12db450aedfa",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-10-09T09:22:36Z",
                "deletionGracePeriodSeconds": 0,
                "deletionTimestamp": "2026-10-09T09:25:02Z",
                "finalizers": [
                    "results.tekton.dev/taskrun"
                ],
                "generation": 2,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-2jwx",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "1",
                    "release.appstudio.openshift.io/name": "snapshot-sample-2jwx-d499148-tbjtl",
                    "release.appstudio.openshift.io/namespace": "retry-pipeline-timeout-b0tb",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "retry-e2e-managed",
                    "tekton.dev/pipelineRun": "managed-wpqnq",
                    "tekton.dev/pipelineRunUID": "3a8b2042-9634-4bda-96c5-12db450aedfa",
                    "tekton.dev/pipelineTask": "task-01"
                },
                "name": "managed-wpqnq-task-01",
                "namespace": "retry-pipeline-timeout-managed",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-wpqnq",
                        "uid": "3a8b2042-9634-4bda-96c5-12db450aedfa"
                    }
                ],
                "resourceVersion": "24872",
                "uid": "3e40f670-3234-441a-8788-daa1ce8f3c1c"
            },
            "spec": {
                "params": [
                    {
                        "name": "failMode",
                        "value": "pipeline-timeout"
                    },
                    {
                        "name": "failOnTask",
                        "value": "task-02"
                    }
                ],
                "serviceAccountName": "release-service-account",
                "taskSpec": {
                    "params": [
                        {
                            "name": "failMode",
                            "type": "string"
                        },
                        {
                            "name": "failOnTask",
                            "type": "string"
                        }
                    ],
                    "steps": [
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "100m",
                                    "memory": "64Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-01-step-01",
                            "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nFAIL_MODE=\"$(params.failMode)\"\nFAIL_ON_TASK=\"$(params.failOnTask)\"\n\n# Only inject failures into the selected task.\n[[ \"${FAIL_ON_TASK}\" == \"task-01\" ]] || exit 0\n\necho \"task-01-step-01: failMode=${FAIL_MODE}\"\n\ncase \"${FAIL_MODE}\" in\n  error)\n    exit 1\n    ;;\n  oom)\n    # Trigger OOM only when the task is still running with the\n    # original memory limit. After retry mitigation the limit\n    # should be increased and this path should no longer OOM.\n    LIMIT=\"max\"\n    [[ -r /sys/fs/cgroup/memory.max ]] \u0026\u0026 read -r LIMIT \u003c /sys/fs/cgroup/memory.max\n\n    THRESHOLD=104857600 # 100 Mi\n\n    if [[ \"${LIMIT}\" != \"max\" ]] \u0026\u0026 (( LIMIT \u003c THRESHOLD )); then\n      echo \"limit ${LIMIT} \u003c ${THRESHOLD}: triggering OOMKill\"\n\n      X=$(dd if=/dev/zero bs=1M count=150 status=none | tr '\\0' 'a')\n      echo \"${#X}\"\n    else\n      echo \"limit ${LIMIT} sufficient\"\n    fi\n    ;;\n  task-timeout)\n    # Sleep longer than the task timeout. Which is set to 1 minute.\n    sleep 90\n    ;;\n  none)\n    ;;\n  *)\n    echo \"unknown fail mode: ${FAIL_MODE}\" \u003e\u00262\n    exit 1\n    ;;\nesac\n"
                        },
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "32Mi"
                                },
                                "requests": {
                                    "cpu": "50m",
                                    "memory": "32Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-01-step-02",
                            "script": "#!/usr/bin/env bash\necho \"task-01-step-02: complete\"\n"
                        }
                    ]
                },
                "timeout": "1m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-10-09T09:22:41Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-10-09T09:22:41Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-wpqnq-task-01-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-10-09T09:22:36Z",
                "steps": [
                    {
                        "container": "step-task-01-step-01",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                        "name": "task-01-step-01",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://16944be6948b5cde42dc1457d1560825b7e2630516e7598a510d166326f1d7f8",
                            "exitCode": 0,
                            "finishedAt": "2026-10-09T09:22:41Z",
                            "reason": "Completed",
                            "startedAt": "2026-10-09T09:22:41Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-task-01-step-02",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                        "name": "task-01-step-02",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://1e5f6d1c6fbde0b6d9f1615b11a99bdec7a2c20f0e6335c79cfda543e7f63879",
                            "exitCode": 0,
                            "finishedAt": "2026-10-09T09:22:41Z",
                            "reason": "Completed",
                            "startedAt": "2026-10-09T09:22:41Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "params": [
                        {
                            "name": "failMode",
                            "type": "string"
                        },
                        {
                            "name": "failOnTask",
                            "type": "string"
                        }
                    ],
                    "steps": [
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "100m",
                                    "memory": "64Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-01-step-01",
                            "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nFAIL_MODE=\"pipeline-timeout\"\nFAIL_ON_TASK=\"task-02\"\n\n# Only inject failures into the selected task.\n[[ \"${FAIL_ON_TASK}\" == \"task-01\" ]] || exit 0\n\necho \"task-01-step-01: failMode=${FAIL_MODE}\"\n\ncase \"${FAIL_MODE}\" in\n  error)\n    exit 1\n    ;;\n  oom)\n    # Trigger OOM only when the task is still running with the\n    # original memory limit. After retry mitigation the limit\n    # should be increased and this path should no longer OOM.\n    LIMIT=\"max\"\n    [[ -r /sys/fs/cgroup/memory.max ]] \u0026\u0026 read -r LIMIT \u003c /sys/fs/cgroup/memory.max\n\n    THRESHOLD=104857600 # 100 Mi\n\n    if [[ \"${LIMIT}\" != \"max\" ]] \u0026\u0026 (( LIMIT \u003c THRESHOLD )); then\n      echo \"limit ${LIMIT} \u003c ${THRESHOLD}: triggering OOMKill\"\n\n      X=$(dd if=/dev/zero bs=1M count=150 status=none | tr '\\0' 'a')\n      echo \"${#X}\"\n    else\n      echo \"limit ${LIMIT} sufficient\"\n    fi\n    ;;\n  task-timeout)\n    # Sleep longer than the task timeout. Which is set to 1 minute.\n    sleep 90\n    ;;\n  none)\n    ;;\n  *)\n    echo \"unknown fail mode: ${FAIL_MODE}\" \u003e\u00262\n    exit 1\n    ;;\nesac\n"
                        },
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "32Mi"
                                },
                                "requests": {
                                    "cpu": "50m",
                                    "memory": "32Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-01-step-02",
                            "script": "#!/usr/bin/env bash\necho \"task-01-step-02: complete\"\n"
                        }
                    ]
                }
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "TaskRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "operator-sdk/primary-resource": "retry-pipeline-timeout-b0tb/snapshot-sample-2jwx-d499148-tbjtl",
                    "operator-sdk/primary-resource-type": "Release.appstudio.redhat.com",
                    "pac.test.appstudio.openshift.io/sha": "d49914874789147eb2de9bb6a12cd5d150bfff92",
                    "pac.test.appstudio.openshift.io/url-repository": "https://github.com/redhat-appstudio-qe/dc-metro-map-release",
                    "pipeline.tekton.dev/release": "70f7308",
                    "results.tekton.dev/childReadyForDeletion": "true",
                    "results.tekton.dev/record": "retry-pipeline-timeout-managed/results/3a8b2042-9634-4bda-96c5-12db450aedfa/records/4647e21d-f8fd-4fde-9881-824b496b0889",
                    "results.tekton.dev/result": "retry-pipeline-timeout-managed/results/3a8b2042-9634-4bda-96c5-12db450aedfa",
                    "results.tekton.dev/stored": "true",
                    "tekton.dev/pipelines.minVersion": "0.12.1",
                    "tekton.dev/tags": "release"
                },
                "creationTimestamp": "2026-10-09T09:22:41Z",
                "deletionGracePeriodSeconds": 0,
                "deletionTimestamp": "2026-10-09T09:25:02Z",
                "finalizers": [
                    "results.tekton.dev/taskrun"
                ],
                "generation": 2,
                "labels": {
                    "app.kubernetes.io/managed-by": "tekton-pipelines",
                    "appstudio.openshift.io/application": "appstudio",
                    "appstudio.openshift.io/service": "release",
                    "appstudio.openshift.io/snapshot": "snapshot-sample-2jwx",
                    "pipelines.appstudio.openshift.io/type": "managed",
                    "release.appstudio.openshift.io/attempt": "1",
                    "release.appstudio.openshift.io/name": "snapshot-sample-2jwx-d499148-tbjtl",
                    "release.appstudio.openshift.io/namespace": "retry-pipeline-timeout-b0tb",
                    "tekton.dev/memberOf": "tasks",
                    "tekton.dev/pipeline": "retry-e2e-managed",
                    "tekton.dev/pipelineRun": "managed-wpqnq",
                    "tekton.dev/pipelineRunUID": "3a8b2042-9634-4bda-96c5-12db450aedfa",
                    "tekton.dev/pipelineTask": "task-02"
                },
                "name": "managed-wpqnq-task-02",
                "namespace": "retry-pipeline-timeout-managed",
                "ownerReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "blockOwnerDeletion": true,
                        "controller": true,
                        "kind": "PipelineRun",
                        "name": "managed-wpqnq",
                        "uid": "3a8b2042-9634-4bda-96c5-12db450aedfa"
                    }
                ],
                "resourceVersion": "24875",
                "uid": "4647e21d-f8fd-4fde-9881-824b496b0889"
            },
            "spec": {
                "params": [
                    {
                        "name": "failMode",
                        "value": "pipeline-timeout"
                    },
                    {
                        "name": "failOnTask",
                        "value": "task-02"
                    }
                ],
                "serviceAccountName": "release-service-account",
                "taskSpec": {
                    "params": [
                        {
                            "name": "failMode",
                            "type": "string"
                        },
                        {
                            "name": "failOnTask",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {
                            "limits": {
                                "memory": "64Mi"
                            },
                            "requests": {
                                "cpu": "100m",
                                "memory": "64Mi"
                            }
                        },
                        "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c"
                    },
                    "steps": [
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "100m",
                                    "memory": "64Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-02-step-01",
                            "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nFAIL_MODE=\"$(params.failMode)\"\nFAIL_ON_TASK=\"$(params.failOnTask)\"\n\n# pipeline-timeout always runs from task-02 regardless of failOnTask.\nif [[ \"${FAIL_ON_TASK}\" != \"task-02\" \u0026\u0026 \"${FAIL_MODE}\" != \"pipeline-timeout\" ]]; then\n  echo \"task-02: complete\"\n  exit 0\nfi\n\necho \"task-02-step-01: failMode=${FAIL_MODE}\"\n\ncase \"${FAIL_MODE}\" in\n  pipeline-timeout)\n    # Sleep past the pipeline level pipeline/tasks timeout. This is used to verify\n    # that retry mitigation updates both pipeline and tasks timeouts\n    # and allows the pipelineRun to complete on retry.\n    echo \"task-02-step-01: sleeping 120s\"\n    sleep 120\n    ;;\n  error)\n    exit 1\n    ;;\n  oom)\n    # Trigger OOM only when the task is still running with the\n    # original memory limit. After retry mitigation the limit\n    # should be increased and this path should no longer OOM.\n    LIMIT=\"max\"\n    [[ -r /sys/fs/cgroup/memory.max ]] \u0026\u0026 read -r LIMIT \u003c /sys/fs/cgroup/memory.max\n\n    THRESHOLD=104857600 # 100 Mi\n\n    if [[ \"${LIMIT}\" != \"max\" ]] \u0026\u0026 (( LIMIT \u003c THRESHOLD )); then\n      echo \"limit ${LIMIT} \u003c ${THRESHOLD}: triggering OOMKill\"\n      X=$(dd if=/dev/zero bs=1M count=150 status=none | tr '\\0' 'a')\n      echo \"${#X}\"\n    else\n      echo \"limit ${LIMIT} sufficient\"\n    fi\n    ;;\n  oom-always)\n  # Always trigger an OOMKill regardless of the memory limit.\n  # This is used to verify that retry mitigation cannot fix\n  # the failure even after resource requests/limits are increased.\n  \n  X=$(dd if=/dev/zero bs=1M count=2048 status=none | tr '\\0' 'a')\n  echo \"${#X}\"\n  ;;\n  none)\n    ;;\n  *)\n    echo \"unknown fail mode: ${FAIL_MODE}\" \u003e\u00262\n    exit 1\n    ;;\nesac\n"
                        },
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "100m",
                                    "memory": "64Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-02-step-02",
                            "script": "#!/usr/bin/env bash\necho \"task-02-step-02: complete\"\n"
                        }
                    ]
                },
                "timeout": "1h0m0s"
            },
            "status": {
                "artifacts": {},
                "completionTime": "2026-10-09T09:24:46Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-10-09T09:24:46Z",
                        "message": "All Steps have completed executing",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "podName": "managed-wpqnq-task-02-pod",
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "sendCloudEventsForRuns": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-10-09T09:22:41Z",
                "steps": [
                    {
                        "container": "step-task-02-step-01",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                        "name": "task-02-step-01",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://71088fd44d656ffab54c1519244c9631bf0fadffb1a5b897bdfe06019546e34d",
                            "exitCode": 0,
                            "finishedAt": "2026-10-09T09:24:46Z",
                            "reason": "Completed",
                            "startedAt": "2026-10-09T09:22:46Z"
                        },
                        "terminationReason": "Completed"
                    },
                    {
                        "container": "step-task-02-step-02",
                        "imageID": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                        "name": "task-02-step-02",
                        "provenance": {},
                        "terminated": {
                            "containerID": "containerd://f22102dab2ec841991d1f6c9fb811c837e784765c5b8066c9beecaeed07bd1ee",
                            "exitCode": 0,
                            "finishedAt": "2026-10-09T09:24:46Z",
                            "reason": "Completed",
                            "startedAt": "2026-10-09T09:24:46Z"
                        },
                        "terminationReason": "Completed"
                    }
                ],
                "taskSpec": {
                    "params": [
                        {
                            "name": "failMode",
                            "type": "string"
                        },
                        {
                            "name": "failOnTask",
                            "type": "string"
                        }
                    ],
                    "stepTemplate": {
                        "computeResources": {
                            "limits": {
                                "memory": "64Mi"
                            },
                            "requests": {
                                "cpu": "100m",
                                "memory": "64Mi"
                            }
                        },
                        "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c"
                    },
                    "steps": [
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "100m",
                                    "memory": "64Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-02-step-01",
                            "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nFAIL_MODE=\"pipeline-timeout\"\nFAIL_ON_TASK=\"task-02\"\n\n# pipeline-timeout always runs from task-02 regardless of failOnTask.\nif [[ \"${FAIL_ON_TASK}\" != \"task-02\" \u0026\u0026 \"${FAIL_MODE}\" != \"pipeline-timeout\" ]]; then\n  echo \"task-02: complete\"\n  exit 0\nfi\n\necho \"task-02-step-01: failMode=${FAIL_MODE}\"\n\ncase \"${FAIL_MODE}\" in\n  pipeline-timeout)\n    # Sleep past the pipeline level pipeline/tasks timeout. This is used to verify\n    # that retry mitigation updates both pipeline and tasks timeouts\n    # and allows the pipelineRun to complete on retry.\n    echo \"task-02-step-01: sleeping 120s\"\n    sleep 120\n    ;;\n  error)\n    exit 1\n    ;;\n  oom)\n    # Trigger OOM only when the task is still running with the\n    # original memory limit. After retry mitigation the limit\n    # should be increased and this path should no longer OOM.\n    LIMIT=\"max\"\n    [[ -r /sys/fs/cgroup/memory.max ]] \u0026\u0026 read -r LIMIT \u003c /sys/fs/cgroup/memory.max\n\n    THRESHOLD=104857600 # 100 Mi\n\n    if [[ \"${LIMIT}\" != \"max\" ]] \u0026\u0026 (( LIMIT \u003c THRESHOLD )); then\n      echo \"limit ${LIMIT} \u003c ${THRESHOLD}: triggering OOMKill\"\n      X=$(dd if=/dev/zero bs=1M count=150 status=none | tr '\\0' 'a')\n      echo \"${#X}\"\n    else\n      echo \"limit ${LIMIT} sufficient\"\n    fi\n    ;;\n  oom-always)\n  # Always trigger an OOMKill regardless of the memory limit.\n  # This is used to verify that retry mitigation cannot fix\n  # the failure even after resource requests/limits are increased.\n  \n  X=$(dd if=/dev/zero bs=1M count=2048 status=none | tr '\\0' 'a')\n  echo \"${#X}\"\n  ;;\n  none)\n    ;;\n  *)\n    echo \"unknown fail mode: ${FAIL_MODE}\" \u003e\u00262\n    exit 1\n    ;;\nesac\n"
                        },
                        {
                            "computeResources": {
                                "limits": {
                                    "memory": "64Mi"
                                },
                                "requests": {
                                    "cpu": "100m",
                                    "memory": "64Mi"
                                }
                            },
                            "image": "quay.io/konflux-ci/release-service-utils@sha256:850118bc6eda4ca3f98ef1e53109164f64a0945a6ac0942f908b7e106f50775c",
                            "name": "task-02-step-02",
                            "script": "#!/usr/bin/env bash\necho \"task-02-step-02: complete\"\n"
                        }
                    ]
                }
            }
        }
    ],
    "kind": "List",
    "metadata": {
        "resourceVersion": ""
    }
}
