Skip to content
This repository has been archived by the owner on Feb 1, 2021. It is now read-only.

SHM size must be greater then 0 #2147

Closed
EamonZhang opened this issue Apr 20, 2016 · 9 comments
Closed

SHM size must be greater then 0 #2147

EamonZhang opened this issue Apr 20, 2016 · 9 comments
Labels

Comments

@EamonZhang
Copy link

RUN docker swarm :
docker -H :4000 run --name nginx22 nginx
Error response from daemon: 500 Internal Server Error: SHM size must be greater then 0
Change command
docker -H :4000 run --name nginx22 --shm-size=67108864 nginx
ok!

docker code :
const DefaultSHMSize int64 = 67108864
Is there anything overwrite DefaultSHMSize = 0

CentOS 7
df -h
tmpfs 497M 0 497M 0% /dev/shm

@allencloud
Copy link
Contributor

@EamonZhang
Can you provide more specific details of you testing environment, such as

  • Swarm version
  • docker version
  • swarm debug log
  • anything you think is helpful

:)

@EamonZhang
Copy link
Author

Swarm 1.2.0
docker 1.9.1
centos 7

Sorry, I do not know how to debug .

docker -H :4000 --debug=true run --name nginx22 nginx
Error response from daemon: 500 Internal Server Error: SHM size must be greater then 0

@allencloud
Copy link
Contributor

allencloud commented Apr 20, 2016

@EamonZhang
I am afraid it is not your command to open debug of swarm.
It is swarm's debug log level instead of nginx container.

First, you run your swarm in container or just binary on host?

  1. if in container, you need to add -l debug in your container command, like:
docker run -d swarm:1.2.0 -l debug manage -H tcp://0.0.0.0:2375 nodes://........
  1. if in binary, like below:
swarm -l debug manage -H tcp://0.0.0.0:2375 nodes://......

Second, when you can reproduce this issue, check the log swarm output and attach the log here

Actually, you specified the versions. And I can try to reproduce this. :)

I have finished my testing, while can not reproduce this:

root@10-11-1-156:~# docker run -d --name nginx22 nginx
27a42b719e4f2b25e096dacfa351de35d0d5f97266d0227047c39f56078e2842
root@10-11-1-156:~# docker version
Client:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   a34a1d5
 Built:        Fri Nov 20 13:12:04 UTC 2015
 OS/Arch:      linux/amd64

Server:
 Version:      swarm/1.2.0
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   HEAD
 Built:        <unknown>
 OS/Arch:      linux/amd64

@EamonZhang
Copy link
Author

@allencloud Thank you .

10.2.0.13 node3 manage
10.2.0.14 node4 join node
10.2.0.15 node5 join node

below command on node3

docker run -d -p 4000:4000 --name swarm_manager00 swarm -l debug manage -H :4000 --replication --advertise 10.2.0.14:4000  consul://10.2.0.13:8500
docker  -H :4000 run -d --name nginx24   nginx
Error response from daemon: 500 Internal Server Error: SHM size must be greater then 0
time="2016-04-20T05:45:15Z" level=debug msg="Initializing discovery service" name=consul uri="10.2.0.13:8500" 
time="2016-04-20T05:45:15Z" level=info msg="Initializing discovery without TLS" 
time="2016-04-20T05:45:15Z" level=debug msg="Initializing strategy" name=spread 
time="2016-04-20T05:45:15Z" level=debug msg="Initializing filter" name=health 
time="2016-04-20T05:45:15Z" level=debug msg="Initializing filter" name=port 
time="2016-04-20T05:45:15Z" level=debug msg="Initializing filter" name=dependency 
time="2016-04-20T05:45:15Z" level=debug msg="Initializing filter" name=affinity 
time="2016-04-20T05:45:15Z" level=debug msg="Initializing filter" name=constraint 
time="2016-04-20T05:45:15Z" level=debug msg="Initializing cluster" name=swarm 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/images/load" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/exec/{execid:.*}/start" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/networks/create" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/commit" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/containers/{name:.*}/rename" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/exec/{execid:.*}/resize" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/images/create" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/build" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/containers/{name:.*}/pause" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/containers/{name:.*}/start" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/images/{name:.*}/tag" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/containers/{name:.*}/kill" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/containers/{name:.*}/attach" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/containers/{name:.*}/exec" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/networks/{networkid:.*}/disconnect" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/auth" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/images/{name:.*}/push" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/containers/{name:.*}/unpause" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/volumes/create" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/containers/{name:.*}/restart" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/containers/{name:.*}/update" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/containers/{name:.*}/wait" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/containers/{name:.*}/resize" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/containers/{name:.*}/copy" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/containers/create" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/containers/{name:.*}/stop" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=POST route="/networks/{networkid:.*}/connect" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=PUT route="/containers/{name:.*}/archive" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=DELETE route="/containers/{name:.*}" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=DELETE route="/images/{name:.*}" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=DELETE route="/networks/{networkid:.*}" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=DELETE route="/volumes/{name:.*}" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=HEAD route="/containers/{name:.*}/archive" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/images/json" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/images/search" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/containers/{name:.*}/changes" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/networks/{networkid:.*}" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/images/get" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/images/{name:.*}/history" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/images/{name:.*}/json" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/containers/{name:.*}/export" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/networks" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/_ping" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/info" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/images/viz" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/containers/ps" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/containers/json" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/containers/{name:.*}/stats" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/containers/{name:.*}/attach/ws" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/volumes" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/exec/{execid:.*}/json" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/events" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/version" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/images/{name:.*}/get" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/containers/{name:.*}/archive" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/containers/{name:.*}/json" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/containers/{name:.*}/top" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/containers/{name:.*}/logs" 
time="2016-04-20T05:45:15Z" level=debug msg="Registering HTTP route" method=GET route="/volumes/{volumename:.*}" 
time="2016-04-20T05:45:15Z" level=info msg="Listening for HTTP" addr=":4000" proto=tcp 
time="2016-04-20T05:45:15Z" level=info msg="Leader Election: Cluster leadership lost" 
time="2016-04-20T05:45:15Z" level=debug msg="Watch triggered with 2 nodes" discovery=consul 
time="2016-04-20T05:45:15Z" level=info msg="Leader Election: Cluster leadership acquired" 
time="2016-04-20T05:45:15Z" level=debug msg="Watchdog enabled" 
time="2016-04-20T05:45:16Z" level=debug msg="Start monitoring events" id="X5PN:VQS6:LTRH:2SXS:764G:XZN3:ZMTJ:M7QB:HVXS:4DN7:SIKM:EZVJ" name=node6 
time="2016-04-20T05:45:16Z" level=debug msg="Start monitoring events" id="NU4B:CGA3:X3U4:TFHO:MMQY:4X2U:RMEV:EY53:RGS2:ZKJR:O4UV:HCA4" name=node5 
time="2016-04-20T05:45:16Z" level=info msg="Registered Engine node6 at 10.2.0.15:2375" 
time="2016-04-20T05:45:16Z" level=info msg="Registered Engine node5 at 10.2.0.14:2375" 
time="2016-04-20T05:45:24Z" level=debug msg="Watch triggered with 2 nodes" discovery=consul 
time="2016-04-20T05:45:30Z" level=debug msg="HTTP request received" method=GET uri="/v1.21/info" 
time="2016-04-20T05:45:40Z" level=debug msg="HTTP request received" method=POST uri="/v1.21/containers/create?name=nginx24" 
time="2016-04-20T05:45:40Z" level=error msg="HTTP error: 500 Internal Server Error: SHM size must be greater then 0\n" status=500
docker version
Client:
 Version:         1.9.1
 API version:     1.21
 Package version: docker-1.9.1-25.el7.centos.x86_64
 Go version:      go1.4.2
 Git commit:      78ee77d/1.9.1
 Built:           
 OS/Arch:         linux/amd64

Server:
 Version:         1.9.1
 API version:     1.21
 Package version: docker-1.9.1-25.el7.centos.x86_64
 Go version:      go1.4.2
 Git commit:      78ee77d/1.9.1
 Built:           
 OS/Arch:         linux/amd64

@vwbusguy
Copy link

I've seen this as well, but setting --shm-size=64m on build and run makes it work again. 64m is the default.

@vwbusguy
Copy link

vwbusguy commented May 2, 2016

I should add, I'm also using CentOS7. I'm using the swarm:latest container. We're doing master replication and it only seems to happen if the call is made from the same node. If I specify --shm-size, it runs fine, but this also breaks running a container with Ansible or Jenkins. I haven't done regression testing yet to find out when it was broken release-wise, but we started seeing it about 2-3 weeks ago.

@vwbusguy
Copy link

vwbusguy commented May 2, 2016

I've found the issue does not occur with swarm 1.1.3, but does with 1.2.0 and 1.2.1-rc1.

@tony24681379
Copy link

tony24681379 commented May 3, 2016

I think it's #1879. engine-api needs shm-size. It was merged in docker issue 16168. Docker engine version needs at least 1.10.

@cxxly
Copy link

cxxly commented May 17, 2016

Have the same problem with:

  • docker 1.11.1
  • centos 7.2.1511
  • swarm 1.2.2

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

7 participants