Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1875529

Summary: Windows machine configuration fails due to not waiting long enough for the node to join the cluster
Product: OpenShift Container Platform Reporter: Sebastian Soto <ssoto>
Component: Windows ContainersAssignee: Team Windows Containers <team-winc-bot>
Status: CLOSED DUPLICATE QA Contact: gaoshang <sgao>
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.6CC: aos-bugs, gmarkley, rgudimet
Target Milestone: ---   
Target Release: 4.6.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-09-18 15:51:32 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:

Description Sebastian Soto 2020-09-03 17:47:41 UTC
Description of problem:
Occasionally WMCO is not waiting long enough for a machine's node to join the cluster.
Reconciliation will fail, but the node will join the cluster shortly after.

```
2020-09-03T17:17:51.240Z	DEBUG	VM i-0f90c6b7efefa502f	ignition file download	{"cmd": "C:\\Temp\\wget-ignore-cert.ps1 -server https://api-int.ssoto-dvg.devcluster.openshift.com:22623/config/worker -output C:\\Windows\\Temp\\worker.ign -useragent Ignition/0.35.0", "output": ""}
2020-09-03T17:17:53.994Z	DEBUG	VM i-0f90c6b7efefa502f	output from wmcb	{"output": "Bootstrapping completed successfully"}
2020-09-03T17:18:09.018Z	ERROR	controller-runtime.controller	Reconciler error	{"controller": "windowsmachine-controller", "request": "openshift-machine-api/ssoto-dvg-fxpnb-win-worker-us-east-1a-7mtp2", "error": "failed to configure Windows VM i-0f90c6b7efefa502f: error getting node object for VM i-0f90c6b7efefa502f: unable to find node for instanceID i-0f90c6b7efefa502f: no nodes found", "errorVerbose": "no nodes found\ngithub.com/openshift/windows-machine-config-operator/pkg/controller/windowsmachine/nodeconfig.(*nodeConfig).setNode.func1\n\twindows-machine-config-operator/pkg/controller/windowsmachine/nodeconfig/nodeconfig.go:201\nk8s.io/apimachinery/pkg/util/wait.runConditionWithCrashProtection\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:211\nk8s.io/apimachinery/pkg/util/wait.WaitFor\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:528\nk8s.io/apimachinery/pkg/util/wait.pollInternal\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:414\nk8s.io/apimachinery/pkg/util/wait.Poll\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:408\ngithub.com/openshift/windows-machine-config-operator/pkg/controller/windowsmachine/nodeconfig.(*nodeConfig).setNode\n\twindows-machine-config-operator/pkg/controller/windowsmachine/nodeconfig/nodeconfig.go:194\ngithub.com/openshift/windows-machine-config-operator/pkg/controller/windowsmachine/nodeconfig.(*nodeConfig).Configure\n\twindows-machine-config-operator/pkg/controller/windowsmachine/nodeconfig/nodeconfig.go:132\ngithub.com/openshift/windows-machine-config-operator/pkg/controller/windowsmachine.(*ReconcileWindowsMachine).addWorkerNode\n\twindows-machine-config-operator/pkg/controller/windowsmachine/windowsmachine_controller.go:230\ngithub.com/openshift/windows-machine-config-operator/pkg/controller/windowsmachine.(*ReconcileWindowsMachine).Reconcile\n\twindows-machine-config-operator/pkg/controller/windowsmachine/windowsmachine_controller.go:211\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\twindows-machine-config-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:256\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\twindows-machine-config-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:232\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker\n\twindows-machine-config-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:211\nk8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:155\nk8s.io/apimachinery/pkg/util/wait.BackoffUntil\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:156\nk8s.io/apimachinery/pkg/util/wait.JitterUntil\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133\nk8s.io/apimachinery/pkg/util/wait.Until\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:90\nruntime.goexit\n\t/home/sebsoto/.gvm/gos/go1.14.7/src/runtime/asm_amd64.s:1373\nunable to find node for instanceID i-0f90c6b7efefa502f\ngithub.com/openshift/windows-machine-config-operator/pkg/controller/windowsmachine/nodeconfig.(*nodeConfig).setNode\n\twindows-machine-config-operator/pkg/controller/windowsmachine/nodeconfig/nodeconfig.go:212\ngithub.com/openshift/windows-machine-config-operator/pkg/controller/windowsmachine/nodeconfig.(*nodeConfig).Configure\n\twindows-machine-config-operator/pkg/controller/windowsmachine/nodeconfig/nodeconfig.go:132\ngithub.com/openshift/windows-machine-config-operator/pkg/controller/windowsmachine.(*ReconcileWindowsMachine).addWorkerNode\n\twindows-machine-config-operator/pkg/controller/windowsmachine/windowsmachine_controller.go:230\ngithub.com/openshift/windows-machine-config-operator/pkg/controller/windowsmachine.(*ReconcileWindowsMachine).Reconcile\n\twindows-machine-config-operator/pkg/controller/windowsmachine/windowsmachine_controller.go:211\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\twindows-machine-config-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:256\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\twindows-machine-config-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:232\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker\n\twindows-machine-config-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:211\nk8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:155\nk8s.io/apimachinery/pkg/util/wait.BackoffUntil\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:156\nk8s.io/apimachinery/pkg/util/wait.JitterUntil\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133\nk8s.io/apimachinery/pkg/util/wait.Until\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:90\nruntime.goexit\n\t/home/sebsoto/.gvm/gos/go1.14.7/src/runtime/asm_amd64.s:1373\nerror getting node object for VM i-0f90c6b7efefa502f\ngithub.com/openshift/windows-machine-config-operator/pkg/controller/windowsmachine/nodeconfig.(*nodeConfig).Configure\n\twindows-machine-config-operator/pkg/controller/windowsmachine/nodeconfig/nodeconfig.go:133\ngithub.com/openshift/windows-machine-config-operator/pkg/controller/windowsmachine.(*ReconcileWindowsMachine).addWorkerNode\n\twindows-machine-config-operator/pkg/controller/windowsmachine/windowsmachine_controller.go:230\ngithub.com/openshift/windows-machine-config-operator/pkg/controller/windowsmachine.(*ReconcileWindowsMachine).Reconcile\n\twindows-machine-config-operator/pkg/controller/windowsmachine/windowsmachine_controller.go:211\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\twindows-machine-config-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:256\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\twindows-machine-config-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:232\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker\n\twindows-machine-config-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:211\nk8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:155\nk8s.io/apimachinery/pkg/util/wait.BackoffUntil\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:156\nk8s.io/apimachinery/pkg/util/wait.JitterUntil\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133\nk8s.io/apimachinery/pkg/util/wait.Until\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:90\nruntime.goexit\n\t/home/sebsoto/.gvm/gos/go1.14.7/src/runtime/asm_amd64.s:1373\nfailed to configure Windows VM i-0f90c6b7efefa502f\ngithub.com/openshift/windows-machine-config-operator/pkg/controller/windowsmachine.(*ReconcileWindowsMachine).addWorkerNode\n\twindows-machine-config-operator/pkg/controller/windowsmachine/windowsmachine_controller.go:232\ngithub.com/openshift/windows-machine-config-operator/pkg/controller/windowsmachine.(*ReconcileWindowsMachine).Reconcile\n\twindows-machine-config-operator/pkg/controller/windowsmachine/windowsmachine_controller.go:211\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\twindows-machine-config-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:256\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\twindows-machine-config-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:232\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker\n\twindows-machine-config-operator/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:211\nk8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:155\nk8s.io/apimachinery/pkg/util/wait.BackoffUntil\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:156\nk8s.io/apimachinery/pkg/util/wait.JitterUntil\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133\nk8s.io/apimachinery/pkg/util/wait.Until\n\twindows-machine-config-operator/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:90\nruntime.goexit\n\t/home/sebsoto/.gvm/gos/go1.14.7/src/runtime/asm_amd64.s:1373"}
```

Version-Release number of selected component (if applicable):


How reproducible:
Not often.

Steps to Reproduce:
1. Create a machineset
2. Sometimes configuration will fail but node will still join the cluster

Actual results:


Expected results:
WMCO waits for the node to join the cluster

Additional info:

Comment 2 Sebastian Soto 2020-09-17 16:22:41 UTC
Determined that the wait.Poll function is being used incorrectly. https://github.com/openshift/windows-machine-config-operator/blob/master/pkg/controller/windowsmachine/nodeconfig/nodeconfig.go#L194

Comment 3 Sebastian Soto 2020-09-18 15:51:32 UTC

*** This bug has been marked as a duplicate of bug 1875528 ***