I wrote:
> Karl Denninger <karl@denninger.net> writes:
>> $ initdb -D data-default
>> ...
>> creating template1 database in data-default/base/1 ... FATAL: could not
>> create semaphores: Invalid argument
>> DETAIL: Failed system call was semget(2, 17, 03600).
> Hmm. On my Linux box, "man semget" says EINVAL means
> EINVAL nsems is less than 0 or greater than the limit on the number of
> semaphores per semaphore set (SEMMSL), or a semaphore set corre-
> sponding to key already exists, and nsems is larger than the
> number of semaphores in that set.
> which agrees with the POSIX spec. Is FreeBSD the same?
BTW, looking at the code, I see that during initdb we would have tried
semaphore key 1 before 2. So presumably, on key 1 we got an error code
that we recognized as meaning "semaphore set already exists", but then on
key 2 we got EINVAL instead. That makes this even more curious. I'd
be interested to see what "ipcs -s" says, if you have that command.
(You might need to run it as root to be sure it will show all sempaphores.)
regards, tom lane