Hi all,
I set up a searx search engine on an OpenBSD VM using the instructions here, which utilizes uWSGI. It worked well until the VM is rebooted, after which uWSGI service cannot be started based on the system logs as below:
!!! no internal routing support, rebuild with pcre support !!!
chdir() to /home/searx/src/searx
your processes number limit is 1310
your memory page size is 4096 bytes
detected max file descriptor number: 128
!!! no /etc/mime.types file found !!!
lock engine: ipcsem
uwsgi_lock_ipcsem_init()/semget(): No space left on device [core/lock.c line 519]
uwsgi_ipcsem_clear()/semctl(): Invalid argument [core/lock.c line 643]
I did some research and found the following in uWSGI documentation:
On OpenBSD, NetBSD and FreeBSD < 9, SysV IPC semaphores are used as the locking subsystem. These operating systems tend to limit the number of allocable semaphores to fairly small values. You should raise the default limits if you plan to run more than one uWSGI instance. FreeBSD 9 has POSIX semaphores, so you do not need to bother with that.
I am not running more than one uWSGI instance. #ipcs
lists 9 semaphores (honestly I am not sure what this means) all of which are owned by the correct _searx user. Is there a way to reset/delete these semaphores to allow fresh ones generated? What is the best solution to this problem? What am I missing?