Bug 1827000
| Summary: | CSV stuck in installing phase | ||
|---|---|---|---|
| Product: | OpenShift Container Platform | Reporter: | Jian Zhang <jiazha> |
| Component: | OLM | Assignee: | Alexander Greene <agreene> |
| OLM sub component: | OLM | QA Contact: | kuiwang |
| Status: | CLOSED ERRATA | Docs Contact: | |
| Severity: | medium | ||
| Priority: | medium | CC: | dsover, krizza, nhale, vdinh |
| Version: | 4.4 | Keywords: | UpcomingSprint |
| Target Milestone: | --- | ||
| Target Release: | 4.4.z | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: |
Cause: OLM allows users to specify volumes and volumeMounts via the subscriptionConfig field within a Subscription. Using this feature updates the deployment defined in the CSV. Occasionally, OLM would not have the subscription created for a CSV in its cache, and the CSV would be placed in the "installing phase" without creating the deployment with the volumes / volumeMounts defined in the Subscription. OLM would then be unable to move the CSV into the "Succeeded phase" because the calculated deployment hash would not equal the actual deployment hash on the deployment. This error would not be resolved because OLM does not update/recreate the deployment in the "installing phase", and the issue would persist until 5 minutes passed when OLM would re-sync CSVs.
Consequence: OLM would occasionally be delayed while installing CSVs.
Fix: If OLM encounters a deployment hash error when installing a CSV, OLM will recreate the deployment.
Result: OLM is no longer delayed by an incorrect deployment hash.
|
Story Points: | --- |
| Clone Of: | Environment: | ||
| Last Closed: | 2020-07-21 10:31:05 UTC | Type: | Bug |
| 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: | 1826443 | ||
| Bug Blocks: | |||
|
Description
Jian Zhang
2020-04-23 01:24:27 UTC
Attempted to auto cherry-pick but it failed due to conflicts. This requires manually cherry-pick for backport PR. verify it on 4.4. LGTM
---
kuiwang@Kuis-MacBook-Pro operator-lifecycle-manager % git remote -v
origin git:operator-framework/operator-lifecycle-manager.git (fetch)
origin git:operator-framework/operator-lifecycle-manager.git (push)
kuiwang@Kuis-MacBook-Pro operator-lifecycle-manager % git fetch origin release-4.4:release-4.4
remote: Enumerating objects: 138, done.
remote: Counting objects: 100% (138/138), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 232 (delta 135), reused 135 (delta 135), pack-reused 94
Receiving objects: 100% (232/232), 51.15 KiB | 158.00 KiB/s, done.
Resolving deltas: 100% (157/157), completed with 56 local objects.
From github.com:operator-framework/operator-lifecycle-manager
* [new branch] release-4.4 -> release-4.4
* [new tag] 0.15.0 -> 0.15.0
* [new tag] 0.15.1 -> 0.15.1
3f7675c6..0326066b release-4.4 -> origin/release-4.4
kuiwang@Kuis-MacBook-Pro operator-lifecycle-manager % git checkout release-4.4
Switched to branch 'release-4.4'
kuiwang@Kuis-MacBook-Pro operator-lifecycle-manager % git branch
master
* release-4.4
kuiwang@Kuis-MacBook-Pro operator-lifecycle-manager % git log -n 1
commit 0326066b8b2f87a1feec4c2bd9fdc8622ef5e1a0 (HEAD -> release-4.4, origin/release-4.4)
Merge: 7df9d667 cce4a36f
Author: OpenShift Merge Robot <openshift-merge-robot.github.com>
Date: Sat Jul 11 03:34:46 2020 +0200
Merge pull request #1566 from awgreene/bz-bp
Bug 1827000: Pod Config Deployment Hash Error
kuiwang@Kuis-MacBook-Pro operator-lifecycle-manager % oc get clusterversion
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS
version 4.4.0-0.nightly-2020-07-12-055624 True False 8m16s Cluster version is 4.4.0-0.nightly-2020-07-12-055624
kuiwang@Kuis-MacBook-Pro operator-lifecycle-manager % oc get pod -n openshift-operator-lifecycle-manager
NAME READY STATUS RESTARTS AGE
catalog-operator-76cc448b4d-lcc4n 1/1 Running 0 30m
olm-operator-5b49f587b9-5hhmv 1/1 Running 0 30m
packageserver-95d967c-5kww7 1/1 Running 0 24m
packageserver-95d967c-jvfwb 1/1 Running 0 23m
kuiwang@Kuis-MacBook-Pro operator-lifecycle-manager % oc exec olm-operator-5b49f587b9-5hhmv -n openshift-operator-lifecycle-manager -- olm --version
OLM version: 0.14.2
git commit: 0326066b8b2f87a1feec4c2bd9fdc8622ef5e1a0
kuiwang@Kuis-MacBook-Pro operator-lifecycle-manager % for i in `seq 10`; do go test -mod=vendor -count=1 -failfast -tags=local -covermode=count -coverpkg ./pkg/controller/... -test.v -test.timeout 30m ./test/e2e/... -test.run='TestCreateNewSubscriptionWithPodConfig' -kubeconfig=${KUBECONFIG:-~/.kube/config} -namespace=openshift-operator-lifecycle-manager -olmNamespace=openshift-operator-lifecycle-manager; sleep 10 ;done
time="2020-07-13T14:40:42+08:00" level=info msg="Loading kube client config from path \"/Users/kuiwang/work/bin/jb/kubeconf/kubeconfig\""
=== RUN TestCreateNewSubscriptionWithPodConfig
time="2020-07-13T14:40:42+08:00" level=info msg="Loading kube client config from path \"/Users/kuiwang/work/bin/jb/kubeconf/kubeconfig\""
time="2020-07-13T14:40:42+08:00" level=info msg="Loading kube client config from path \"/Users/kuiwang/work/bin/jb/kubeconf/kubeconfig\""
waiting for catalog pod podconfig-catsrc-hgrjn to be available (for sync)
catalog podconfig-catsrc-hgrjn pod with address podconfig-catsrc-hgrjn.openshift-operator-lifecycle-manager.svc:50051
time="2020-07-13T14:41:07+08:00" level=info msg="Loading kube client config from path \"/Users/kuiwang/work/bin/jb/kubeconf/kubeconfig\""
time="2020-07-13T14:41:07+08:00" level=info msg="Loading kube client config from path \"/Users/kuiwang/work/bin/jb/kubeconf/kubeconfig\""
--- PASS: TestCreateNewSubscriptionWithPodConfig (31.82s)
util_test.go:489: Creating catalog source podconfig-catsrc-hgrjn in namespace openshift-operator-lifecycle-manager...
util_test.go:494: Catalog source podconfig-catsrc-hgrjn created
subscription_e2e_test.go:352: 14:40:47.6599: (): nil
subscription_e2e_test.go:352: 14:40:48.6577: (): nil
subscription_e2e_test.go:352: 14:40:49.6543: (): nil
subscription_e2e_test.go:352: 14:40:50.6555: (): nil
subscription_e2e_test.go:352: 14:40:51.6515: (): nil
subscription_e2e_test.go:352: 14:40:52.6597: (): nil
subscription_e2e_test.go:352: 14:40:53.6567: (): nil
subscription_e2e_test.go:352: 14:40:54.6591: (): nil
subscription_e2e_test.go:352: 14:40:55.6598: (): nil
subscription_e2e_test.go:352: 14:40:56.6564: UpgradePending (nginx-b): &ObjectReference{Kind:InstallPlan,Namespace:openshift-operator-lifecycle-manager,Name:install-zmxb9,UID:917d5972-0abd-4b80-8d7e-a18c3251efb4,APIVersion:operators.coreos.com/v1alpha1,ResourceVersion:29914,FieldPath:,}
subscription_e2e_test.go:352: 14:40:57.683: UpgradePending (nginx-b): &ObjectReference{Kind:InstallPlan,Namespace:openshift-operator-lifecycle-manager,Name:install-zmxb9,UID:917d5972-0abd-4b80-8d7e-a18c3251efb4,APIVersion:operators.coreos.com/v1alpha1,ResourceVersion:29914,FieldPath:,}
subscription_e2e_test.go:352: 14:40:58.6725: UpgradePending (nginx-b): &ObjectReference{Kind:InstallPlan,Namespace:openshift-operator-lifecycle-manager,Name:install-zmxb9,UID:917d5972-0abd-4b80-8d7e-a18c3251efb4,APIVersion:operators.coreos.com/v1alpha1,ResourceVersion:29914,FieldPath:,}
subscription_e2e_test.go:352: 14:40:59.6998: AtLatestKnown (nginx-b): &ObjectReference{Kind:InstallPlan,Namespace:openshift-operator-lifecycle-manager,Name:install-zmxb9,UID:917d5972-0abd-4b80-8d7e-a18c3251efb4,APIVersion:operators.coreos.com/v1alpha1,ResourceVersion:29914,FieldPath:,}
csv_e2e_test.go:257: Installing (InstallWaiting): installing: waiting for deployment podconfig-dep-b6jmp to become ready: Waiting for rollout to finish: 0 of 1 updated replicas are available...
csv_e2e_test.go:257: Installing (InstallWaiting): installing: waiting for deployment podconfig-dep-b6jmp to become ready: Waiting for rollout to finish: 0 of 1 updated replicas are available...
csv_e2e_test.go:257: Installing (InstallWaiting): installing: waiting for deployment podconfig-dep-b6jmp to become ready: Waiting for rollout to finish: 1 old replicas are pending termination...
csv_e2e_test.go:257: Installing (InstallWaiting): installing: waiting for deployment podconfig-dep-b6jmp to become ready: Waiting for rollout to finish: 1 old replicas are pending termination...
csv_e2e_test.go:257: Installing (InstallWaiting): installing: waiting for deployment podconfig-dep-b6jmp to become ready: Waiting for rollout to finish: 1 old replicas are pending termination...
csv_e2e_test.go:257: Succeeded (InstallSucceeded): install strategy completed with no errors
util_test.go:457: Deleting config map podconfig-catsrc-hgrjn-configmap...
util_test.go:450: Deleting catalog source podconfig-catsrc-hgrjn...
util_test.go:406: cleaning up any remaining non persistent resources...
util_test.go:421: 0 csvs remaining
util_test.go:428: 0 installplans remaining
util_test.go:435: 0 subs remaining
util_test.go:442: 0 catalogs remaining
PASS
coverage: 0.1% of statements in ./pkg/controller/...
ok github.com/operator-framework/operator-lifecycle-manager/test/e2e 33.482s coverage: 0.1% of statements in ./pkg/controller/...
? github.com/operator-framework/operator-lifecycle-manager/test/e2e/data/kiali-image-registry [no test files]
? github.com/operator-framework/operator-lifecycle-manager/test/e2e/wait [no test files]
time="2020-07-13T14:41:28+08:00" level=info msg="Loading kube client config from path \"/Users/kuiwang/work/bin/jb/kubeconf/kubeconfig\""
=== RUN TestCreateNewSubscriptionWithPodConfig
time="2020-07-13T14:41:29+08:00" level=info msg="Loading kube client config from path \"/Users/kuiwang/work/bin/jb/kubeconf/kubeconfig\""
time="2020-07-13T14:41:29+08:00" level=info msg="Loading kube client config from path \"/Users/kuiwang/work/bin/jb/kubeconf/kubeconfig\""
catalog podconfig-catsrc-7rjwj pod with address podconfig-catsrc-7rjwj.openshift-operator-lifecycle-manager.svc:50051
time="2020-07-13T14:41:56+08:00" level=info msg="Loading kube client config from path \"/Users/kuiwang/work/bin/jb/kubeconf/kubeconfig\""
time="2020-07-13T14:41:56+08:00" level=info msg="Loading kube client config from path \"/Users/kuiwang/work/bin/jb/kubeconf/kubeconfig\""
--- PASS: TestCreateNewSubscriptionWithPodConfig (34.25s)
...
--- PASS: TestCreateNewSubscriptionWithPodConfig (39.59s)
util_test.go:489: Creating catalog source podconfig-catsrc-n8tlt in namespace openshift-operator-lifecycle-manager...
util_test.go:494: Catalog source podconfig-catsrc-n8tlt created
subscription_e2e_test.go:352: 14:48:40.5442: (): nil
subscription_e2e_test.go:352: 14:48:41.5722: (): nil
subscription_e2e_test.go:352: 14:48:42.551: (): nil
subscription_e2e_test.go:352: 14:48:43.5865: (): nil
subscription_e2e_test.go:352: 14:48:44.6414: (): nil
subscription_e2e_test.go:352: 14:48:45.5639: (): nil
subscription_e2e_test.go:352: 14:48:46.5332: (): nil
subscription_e2e_test.go:352: 14:48:47.554: (): nil
subscription_e2e_test.go:352: 14:48:48.5606: (): nil
subscription_e2e_test.go:352: 14:48:49.5412: (): nil
subscription_e2e_test.go:352: 14:48:50.5758: (): nil
subscription_e2e_test.go:352: 14:48:51.9233: (): nil
subscription_e2e_test.go:352: 14:48:52.5702: (): nil
subscription_e2e_test.go:352: 14:48:53.5504: UpgradePending (nginx-b): &ObjectReference{Kind:InstallPlan,Namespace:openshift-operator-lifecycle-manager,Name:install-bdgr7,UID:3293ad0d-798c-4bb1-bd80-7192fe74cb76,APIVersion:operators.coreos.com/v1alpha1,ResourceVersion:35241,FieldPath:,}
subscription_e2e_test.go:352: 14:48:55.2881: UpgradePending (nginx-b): &ObjectReference{Kind:InstallPlan,Namespace:openshift-operator-lifecycle-manager,Name:install-bdgr7,UID:3293ad0d-798c-4bb1-bd80-7192fe74cb76,APIVersion:operators.coreos.com/v1alpha1,ResourceVersion:35241,FieldPath:,}
subscription_e2e_test.go:352: 14:48:56.4987: AtLatestKnown (nginx-b): &ObjectReference{Kind:InstallPlan,Namespace:openshift-operator-lifecycle-manager,Name:install-bdgr7,UID:3293ad0d-798c-4bb1-bd80-7192fe74cb76,APIVersion:operators.coreos.com/v1alpha1,ResourceVersion:35241,FieldPath:,}
csv_e2e_test.go:257: Installing (InstallWaiting): installing: waiting for deployment podconfig-dep-w8tr6 to become ready: Waiting for rollout to finish: 0 of 1 updated replicas are available...
csv_e2e_test.go:257: Installing (InstallSucceeded): waiting for install components to report healthy
csv_e2e_test.go:257: Installing (InstallWaiting): installing: waiting for deployment podconfig-dep-w8tr6 to become ready: Waiting for rollout to finish: 1 old replicas are pending termination...
csv_e2e_test.go:257: Installing (InstallWaiting): installing: waiting for deployment podconfig-dep-w8tr6 to become ready: Waiting for rollout to finish: 1 old replicas are pending termination...
csv_e2e_test.go:257: Installing (InstallWaiting): installing: waiting for deployment podconfig-dep-w8tr6 to become ready: Waiting for rollout to finish: 1 old replicas are pending termination...
csv_e2e_test.go:257: Succeeded (InstallSucceeded): install strategy completed with no errors
util_test.go:457: Deleting config map podconfig-catsrc-n8tlt-configmap...
util_test.go:450: Deleting catalog source podconfig-catsrc-n8tlt...
util_test.go:406: cleaning up any remaining non persistent resources...
util_test.go:421: 0 csvs remaining
util_test.go:428: 0 installplans remaining
util_test.go:435: 0 subs remaining
util_test.go:442: 0 catalogs remaining
PASS
coverage: 0.1% of statements in ./pkg/controller/...
ok github.com/operator-framework/operator-lifecycle-manager/test/e2e 41.591s coverage: 0.1% of statements in ./pkg/controller/...
? github.com/operator-framework/operator-lifecycle-manager/test/e2e/data/kiali-image-registry [no test files]
? github.com/operator-framework/operator-lifecycle-manager/test/e2e/wait [no test files]
---
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-2020:2913 |