On 2018-08-27, Chris Narkiewicz <he...@ezaquarii.com> wrote: > Hi, > > I'm trying to run uwsgi server and I even managed to start it > successfully... once. > > On second time, it aborted: > > uwsgi_lock_ipcsem_init()/semget(): No space left on device [core/lock.c > line 519] > > I checked ipcs (_mc is the user that runs uwsgi) > > core# ipcs > Message Queues: > T ID KEY MODE OWNER GROUP > > Shared Memory: > T ID KEY MODE OWNER GROUP > > Semaphores: > T ID KEY MODE OWNER GROUP > s 327680 0 --rw-rw-rw- _mc _mc > s 327681 0 --rw-rw-rw- _mc _mc > s 327682 0 --rw-rw-rw- _mc _mc > s 327683 0 --rw-rw-rw- _mc _mc > s 327684 0 --rw-rw-rw- _mc _mc > s 327685 0 --rw-rw-rw- _mc _mc > s 327686 0 --rw-rw-rw- _mc _mc > s 327687 0 --rw-rw-rw- _mc _mc > > Ok, the docs say that semaphore limits are pretty low on *BSDs and it > should be increased. > > https://uwsgi-docs.readthedocs.io/en/latest/ThingsToKnow.html > > 2 questions then: > > 1) Why there are semaphores listed in ipcs if uwsgi is not running? > I guess the listed ones were left by my first, successfull run. > > 2) How to increase number of allowed semaphores? > > Best regards, > Chris > >
For 2) the various parameters are described in sysctl(2) under kern.seminfo ("man 2 sysctl" - the default for man is sysctl(8) which is not what you want). For 1) maybe something went wrong with removing them? ktrace may give some clues (and maybe building with UWSGI_DEBUG - did uwsgi_ipcsem_clear actually get called etc.?) AFAIK if the process doesn't remove them, they will stick around.