-
Notifications
You must be signed in to change notification settings - Fork 118
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
com.docker.supervisor uses 100% CPU when sending NTP requests to launchdns #3565
Comments
@ltm You wouldn't happen to have a diagnostic ID from when this has happened to you, would you? |
@mistydemeo Sorry, I don't. I looked at the diagnostics myself but didn't submit it and I've since uninstalled launchdns to avoid the issue. I'll reinstall launchdns and submit the Docker diagnostics if the issue occurs again. |
I'd be curious to hear if the issue does/doesn't occur when launchdns is configured not to use launchd's socket activation feature. If it's the presence of any TLD DNS configuration file that triggers the issue. |
I've captured a diagnostic report. Some interesting excerpts:
tcpdump:
The diag report contains a lot of data that i'm not comfortable uploading (lots to vet), but I've saved it and happy to upload specific pieces, or pair with someone to review it. |
I've also been able to reproduce and have logs. Like @christianclinton, my logs contain some private data so I haven't uploaded everything, but I'm glad to privately share whatever might be useful. |
I'm staring to have suspicion about what's going on. I've tried to illustrate it below. The components in play are:
The sntpc client will send an NTP request to gateway.docker.internal. Since vpnkit is configured to forward NTP traffic, it will bind an ephemeral port and relay the NTP request to the supervisor. This ephemeral port will be the range from 49152 to 65535 and thus there's a chance it could be 55353*. The supervisor now receives an NTP request from localhost:55353. If at this point launchdns has managed to bind port 55353, it will receive the NTP response from the supervisor. Since launchdns simply echos invalid DNS requests (see #2923 (comment)) it will send the NTP response back to the supervisor and the snowball has started rolling. Therefore I believe one workaround would be to configure launchdns to use a port outside the ephemeral range (49152-65535).
* I'm not sure how this would happen while launchdns is bound to that port |
Same here, I only notice the behavior on my home network and I'm not using launchdns particularly, I think.
Also saved the diagnostic logs if something needed later I'm happy to have a chat about it! |
Checking in again - haven't heart back on this yet. |
I am not 100% sure, but a factor in this may be that I am switching network. I am on a MacBook, which I dock in one location with physical ethernet and then switch to WiFi when not docked. I am seeing it frequently. |
Issues go stale after 90d of inactivity. Prevent issues from auto-closing with an If this issue is safe to close now please do so. Send feedback to Docker Community Slack channels #docker-for-mac or #docker-for-windows. |
/lifecycle frozen |
This issue is not stale. We're still waiting for any kind of response from a Docker for Mac maintainer or Docker employee. |
/remove-lifecycle stale |
any update on this? I just had this scenario happen on my Mac with Docker ### 2019-11-14 2.1.0.5. I noticed two processes running com.docker.supervisor using 100% cpu for two users that are logged into my system. One the active user, and the other a user logged in but in the background. |
It's been nine months without a response from a Docker employee. I'd really appreciate having some kind of acknowledgment of this bug. 💖 |
Apologies for the lack of diagnostics - I haven't yet determined the precise trigger for the bug, even though it happens frequently, but I will add diagnostics once it repros again for me.
Expected behavior
Docker should not use 100% CPU.
Actual behavior
Docker consistently uses 100% CPU even when doing nothing.
Information
References this comment earlier: #2923 (comment)
That issue was closed, but this issue still exists. As noted in that comment:
launchdns is a launchd-based local development DNS server which is popular for setting up domains for local development.
The stacktrace they provided was the following:
Diagnostic logs
Steps to reproduce the behavior
The text was updated successfully, but these errors were encountered: