Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-1436

OLM Reports ResolutionFailed when there are multiple upgrade paths between channel entries

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Undefined Undefined
    • None
    • 4.10
    • OLM
    • Moderate
    • [OLM-225] FBC - Qubernetes
    • 1
    • False
    • Hide

      None

      Show
      None

      This is to backprop OCPBUGS-1087 to 4.10 release.
      Since this was committed to OCP 4.11 already (commit: https://github.com/openshift/operator-framework-olm/commit/f42891859d429ee92da04869ecca56917afccaf2, downstream PR: https://github.com/openshift/operator-framework-olm/pull/300) moving this directly to ON_QA state after setting up release links

       

      -------------------------------------------------------------------------------------------------------

       

      Description of problem:

      Catalog affected : icr.io/cpopen/datapower-operator-catalog:1.6.2

      opm render icr.io/cpopen/datapower-operator-catalog:1.6.2 -o yaml > catalog.yaml
      
       yq 'select(.schema == "olm.channel") | select(.name=="v1.6")' catalog.yaml
      entries:
        - name: datapower-operator.v1.6.0
          skipRange: '>=1.0.0 <1.6.0'
        - name: datapower-operator.v1.6.1
          replaces: datapower-operator.v1.6.0
          skipRange: '>=1.0.0 <1.6.1'
        - name: datapower-operator.v1.6.2
          replaces: datapower-operator.v1.6.1
          skipRange: '>=1.0.0 <1.6.2'
      name: v1.6
      package: datapower-operator
      schema: olm.channel
      
      

      This have worked fine untill 4.10 resolver changes. Also using both the replaces and skiprange seems to be okay the way it was explained here
      https://v0-18-z.olm.operatorframework.io/docs/concepts/olm-architecture/operator-catalog/creating-an-update-graph/#skiprange

      How reproducible:
      use following subscription, install 1.6.0 and then upgrade to 1.6.2

      apiVersion: operators.coreos.com/v1alpha1
      kind: Subscription
      metadata:
        labels:
          operators.coreos.com/datapower-operator.openshift-operators: ""
        name: datapower-operator
        namespace: openshift-operators
      spec:
        channel: v1.6
        installPlanApproval: Manual
        name: datapower-operator
        source: datapower
        sourceNamespace: openshift-marketplace
        startingCSV: datapower-operator.v1.6.0
      
      

      Error n subscription yaml :

        conditions:
        - lastTransitionTime: "2022-09-09T13:42:08Z"
          message: all available catalogsources are healthy
          reason: AllCatalogSourcesHealthy
          status: "False"
          type: CatalogSourcesUnhealthy
        - message: 'a unique replacement chain within a channel is required to determine
            the relative order between channel entries, but 2 replacement chains were found
            in channel "v1.6" of package "datapower-operator": datapower-operator.v1.6.2...datapower-operator.v1.6.0,
            datapower-operator.v1.6.1...datapower-operator.v1.6.0'
          reason: ErrorPreventedResolution
          status: "True"
          type: ResolutionFailed
      
      

      Logs

      I0909 13:43:51.492784       1 event.go:282] Event(v1.ObjectReference{Kind:"Namespace", Namespace:"", Name:"openshift-operators", UID:"aacda32d-748f-4408-88df-f895e74a23fe", APIVersion:"v1", ResourceVersion:"1260", FieldPath:""}): type: 'Warning' reason: 'ResolutionFailed' a unique replacement chain within a channel is required to determine the relative order between channel entries, but 2 replacement chains were found in channel "v1.6" of package "datapower-operator": datapower-operator.v1.6.2...datapower-operator.v1.6.0, datapower-operator.v1.6.1...datapower-operator.v1.6.0
      E0909 13:43:52.095288       1 queueinformer_operator.go:290] sync "openshift-operators" failed: a unique replacement chain within a channel is required to determine the relative order between channel entries, but 2 replacement chains were found in channel "v1.6" of package "datapower-operator": datapower-operator.v1.6.2...datapower-operator.v1.6.0, datapower-operator.v1.6.1...datapower-operator.v1.6.0
      
      

      Expected results:

      if this upgrade strategy which has worked fine before is still okay, this error should not be there. As per affected catalog maintainer, this seems to affecting reconciling of other resources.

            rh-ee-jkeister Jordan Keister
            rhn-support-roarora Rohan Arora (Inactive)
            Xia Zhao Xia Zhao
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: