-
Notifications
You must be signed in to change notification settings - Fork 5.1k
wip: add cleanup step for socketfilterfw and bootpd on macOS #22150
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: medyagh The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
.github/workflows/smoke-test.yml
Outdated
| ./out/minikube start \ | ||
| --no-kubernetes \ | ||
| --memory 4gb \ | ||
| --cpus 2 \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1 cpus known to work, 2 cpus never worked for me with lima vm.
| --cpus 2 \ | ||
| --memory 2gb \ | ||
| --driver ${{ matrix.driver }} \ | ||
| --wait-timeout=15m \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why? if we cannot boot with the default timeout (6m) something is broken and we will never boot.
|
on 1200 mb memory I got this serial logs from qemu |
| if runtime.GOARCH == "amd64" { | ||
| cmdlineParts = append(cmdlineParts, "console=ttyS0") | ||
| } | ||
| cmdline := strings.Join(cmdlineParts, " ") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This does not work as you probably discovered. The current code is correct and does not need to change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is just a debugging pr everything here is gonna be vanished after make it work
| run: ./out/minikube stop ${{ env.LOG_ARGS }} | ||
| - name: Start minikube again (2nd boot) | ||
| run: ./out/minikube start ${{ env.LOG_ARGS }} | ||
| run: ./out/minikube start --force ${{ env.LOG_ARGS }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't need force since we changed memory to 2g
| // Surface qemu state when DHCP discovery is slow or stuck. | ||
| if i > 0 && i%10 == 0 { | ||
| d.logQEMUStatus(fmt.Sprintf("ip lookup still failing (attempt %d)", i)) | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead of logging, this should check if qemu is running and abort the wait quickly if qemu terminated.
| env: | ||
| GOPROXY: https://proxy.golang.org | ||
| LOG_ARGS: --v=8 --alsologtostderr | ||
| LOG_ARGS: --v=10 --alsologtostderr |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is needed, we are missing some logs when waiting for vm to start, we don't have issue with not logging all logs. This will make k8s client logging much verbose for no benefit.
| run: | | ||
| sudo killall socketfilterfw bootpd | ||
| sudo mdutil -a -i off | ||
| sudo pkill -f "mds_stores|mds|mdworker_shared|mdworker|spotlightknowledged|Spotlight|photoanalysisd|cloudphotod|mediaanalysisd|analyticsd|mediaanalysisd|mdwrite|corespotlightd|geod|weatherd" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please don't, I don't do any of these in vment-helper and they have no issues.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
vmnnet helper process doesnt need as much as minikube
| } else { | ||
| running := checkPid(pid) == nil | ||
| log.Infof("qemu status: pid=%d running=%t", pid, running) | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This likely replicates d.GetState()
| log.Debugf("qemu status: monitor query failed: %v", err) | ||
| } else { | ||
| log.Infof("qemu status: QMP state=%s", state) | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What kind of info we get here? Why do need it every 10 seconds?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is just temp debugging to see if the VM is running at all or qemu rnning at all
| } else { | ||
| log.Infof("qemu status: QMP state=%s", state) | ||
| } | ||
| d.logSerialTail() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will log the huge serial log every 10 seconds, does not make sense.
| } | ||
|
|
||
| // logSerialTail emits the tail of the qemu serial log for debugging boot stalls. | ||
| func (d *Driver) logSerialTail() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should not log qemu serial log in minikube, minikube log is too noisy as is. If we have issues in qemu boot, the serial log will reveal them.
When tests fail, we need to upload minikube and qemu logs as build artifacts for inspection. Keeping everything in one log is messy.
.github/workflows/smoke-test.yml
Outdated
| ./out/minikube start \ | ||
| --no-kubernetes \ | ||
| --cpus 1 \ | ||
| --memory 1200mb \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will cause trouble, we try to use 6g of ram when we need only 2g.
...
Good reason to keep 2g. |
That is coming from inside minikube vm, I think 1200 is not enough to run docker and other things we need (ssh) I am thinking maybe we should try no-kuberentes with containerd |
|
@medyagh: The following tests failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
No description provided.