Bug 1746193

Summary: Subscriptions to operator with multiple channels are not acted upon unless defaultChannel set for package
Product: OpenShift Container Platform Reporter: Evan Cordell <ecordell>
Component: OLMAssignee: Evan Cordell <ecordell>
OLM sub component: OLM QA Contact: Bruno Andrade <bandrade>
Status: CLOSED ERRATA Docs Contact:
Severity: low    
Priority: medium CC: bandrade, chezhang, chuo, dyan, dzager, ecordell, jfan, jiazha, scolange, scuppett, vlaad
Version: 4.2.0Keywords: Reopened
Target Milestone: ---   
Target Release: 4.2.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1705117 Environment:
Last Closed: 2019-10-16 06:38:11 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1705117    

Comment 1 Bruno Andrade 2019-09-10 11:54:12 UTC
Evan, do you have the PR related to this fix? I just want to ensure that the build that I'm using to verify has the proper commits included. Thanks

Comment 2 Bruno Andrade 2019-09-10 23:32:06 UTC
Just saw the PR on https://bugzilla.redhat.com/show_bug.cgi?id=1705117 -> https://github.com/operator-framework/operator-registry/pull/46

LGTM, marking as verified. Pod crashes informing that a defaultChannel is not specified.

Cluster Version: 4.2.0-0.nightly-2019-09-09-073137
OLM version: 0.11.0
git commit: d6056ddf181798e740178d2c6cad76d60bd0b52c

Steps used to validate
1- Create a namespace
oc create ns scenario3

2. Create a CatalogSource object, wait for it to become healthy.
oc apply -f https://raw.githubusercontent.com/djzager/olm-playground/3fefe16d4bb97622c2c698f08836cf7d2731d353/scenario3/configmap/scenario3.configmap.yaml
oc apply -f https://raw.githubusercontent.com/djzager/olm-playground/3fefe16d4bb97622c2c698f08836cf7d2731d353/scenario3/configmap/scenario3.catalogsource.yaml 

Check the CatalogSource state, should be crashing:

oc get pods -n openshift-operator-lifecycle-manager
NAME                                READY   STATUS             RESTARTS   AGE
catalog-operator-7f75f59b9b-spqkp   1/1     Running            0          34h
olm-operator-7fcf7fb78f-4j5q9       1/1     Running            0          34h
packageserver-7bdf4f68bc-m6qpb      1/1     Running            0          15h
packageserver-7bdf4f68bc-rwswc      1/1     Running            0          15h
scenario3-d2rft                     0/1     CrashLoopBackOff   80         6h26m

Check error message on pod log:

oc logs -f scenario3-d2rft -n openshift-operator-lifecycle-manager


time="2019-09-10T17:04:05Z" level=fatal msg="permissive mode disabled" configMapName=scenario3 configMapNamespace=openshift-operator-lifecycle-manager error="error loading manifests from configmap: [error loading package example-operator-a: no default channel specified for example-operator-a, error loading package example-operator-b: no default channel specified for example-operator-b]" port=50051

oc logs -f catalog-operator-7f75f59b9b-spqkp -n openshift-operator-lifecycle-manager

E0910 17:01:23.704737       1 queueinformer_operator.go:282] sync "scenario3" failed: {example-operator-a stable  {scenario3 openshift-operator-lifecycle-manager}} not found: CatalogSource {scenario3 openshift-operator-lifecycle-manager} not found
E0910 17:01:24.106269       1 queueinformer_operator.go:282] sync "scenario3" failed: {example-operator-a stable  {scenario3 openshift-operator-lifecycle-manager}} not found: CatalogSource {scenario3 openshift-operator-lifecycle-manager} not found
E0910 17:01:24.504810       1 queueinformer_operator.go:282] sync "scenario3" failed: {example-operator-a stable  {scenario3 openshift-operator-lifecycle-manager}} not found: CatalogSource {scenario3 openshift-operator-lifecycle-manager} not found
E0910 17:01:24.904860       1 queueinformer_operator.go:282] sync "scenario3" failed: {example-operator-a stable  {scenario3 openshift-operator-lifecycle-manager}} not found: CatalogSource {scenario3 openshift-operator-lifecycle-manager} not found
E0910 17:01:25.305719       1 queueinformer_operator.go:282] sync "scenario3" failed: {example-operator-a stable  {scenario3 openshift-operator-lifecycle-manager}} not found: CatalogSource {scenario3 openshift-operator-lifecycle-manager} not found
time="2019-09-10T17:01:28Z" level=info msg="state.Key.Namespace=openshift-operator-lifecycle-manager state.Key.Name=scenario3 state.State=TRANSIENT_FAILURE"
time="2019-09-10T17:01:29Z" level=info msg="state.Key.Namespace=openshift-operator-lifecycle-manager state.Key.Name=scenario3 state.State=CONNECTING"
time="2019-09-10T17:01:49Z" level=info msg="state.Key.Namespace=openshift-operator-lifecycle-manager state.Key.Name=scenario3 state.State=TRANSIENT_FAILURE"
time="2019-09-10T17:01:51Z" level=info msg="state.Key.Namespace=openshift-operator-lifecycle-manager state.Key.Name=scenario3 state.State=CONNECTING"
time="2019-09-10T17:02:11Z" level=info msg="state.Key.Namespace=openshift-operator-lifecycle-manager state.Key.Name=scenario3 state.State=TRANSIENT_FAILURE"
time="2019-09-10T17:02:15Z" level=info msg="state.Key.Namespace=openshift-operator-lifecycle-manager state.Key.Name=scenario3 state.State=CONNECTING"
time="2019-09-10T17:02:35Z" level=info msg="state.Key.Namespace=openshift-operator-lifecycle-manager state.Key.Name=scenario3 state.State=TRANSIENT_FAILURE"
time="2019-09-10T17:02:42Z" level=info msg="state.Key.Namespace=openshift-operator-lifecycle-manager state.Key.Name=scenario3 state.State=CONNECTING"
time="2019-09-10T17:02:54Z" level=info msg="Adding related objects for operator-lifecycle-manager-catalog"
time="2019-09-10T17:03:02Z" level=info msg="state.Key.Namespace=openshift-operator-lifecycle-manager state.Key.Name=scenario3 state.State=TRANSIENT_FAILURE"

Comment 3 errata-xmlrpc 2019-10-16 06:38:11 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2019:2922