-
Notifications
You must be signed in to change notification settings - Fork 18.6k
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
Starting Windows Docker containers with a too low memory limit causes the Docker service to hang #37429
Comments
ping @johnstep @jhowardmsft |
I can reproduce the problem and will investigate today. Thanks. |
I believe HCS relies on the CExecSvc process in the container, for container communication. At 30 MB, the container doesn't have enough memory to start CExecSvc sometimes, and when it does, something must be failing somewhere, or perhaps in another process. I think there are a couple things that can help here:
@jhowardmsft Can you take a look at this from a Microsoft Windows team perspective? |
Note that there is a hard minimum limit for Linux containers as well which we enforce (4MB) in the API. |
Description
Creating and starting Windows docker containers with a low memory limit (e.g.: 30 MB) can cause the docker service to hang and become unresponsive until the service is forcefully restarted.
This issue has been observed while using Kubernetes 1.11 with Windows Server 1803 nodes. The Kubernetes pods fail to start (they will remain in ContainerCreating state [1]) and the nodes will end up in NotReady state because the Docker service is hanging on the Windows nodes. To properly restore the Windows nodes, the pods will have to be deleted before restarting the Docker service.
Creating containers with a higher memory limit (e.g.: 50 MB) works fine and does not cause any issues.
[1] https://paste.ubuntu.com/p/Px25F9Tnfs/
Steps to reproduce the issue:
Via Docker:
docker create --name test-container --memory 30m microsoft/windowsservercore:1803 ping -t localhost
docker ps -a
docker start test-container
Via Kubernetes:
pod.yaml
file: https://paste.ubuntu.com/p/kDnYP3zBYS/kubectl create -f pod.yaml
)kubectl describe po/pod-limit
)kubectl get nodes
)docker ps -a
)Describe the results you received:
Docker becomes unresponsive. The CLI doesn't receive any response and will also hang until interrupted.
Describe the results you expected:
The Docker service should still be working.
Additional information you deem important (e.g. issue happens only occasionally):
Output of
docker version
:Output of
docker info
:Additional environment details (AWS, VirtualBox, physical, etc.):
The text was updated successfully, but these errors were encountered: