соединение с PostgreSQL приводит к сбою с semctl … недействительный аргумент

Я выполнил initdb, который попробовали для создания нового суперпользователя с createuser-sdrP myuser

Ошибка, которую я получаю,

createuser: could not connect to database postgres: FATAL: semctl(3342342, 3, SETVAL, 0) failed: Invalid argument

Я ничего не могу найти об этом нигде в Интернете. Я попытался деинсталлировать, удалив каталог данных, и попробовав еще раз, но провал. Я в своем конце остроумия.

Я работаю в тюрьме, которая выполняет FreeBSD 9.2-RELEASE-p10. И да, я установил, позволяют sysvipc=1

4
задан 21 September 2015 в 03:59
1 ответ

Скорее всего, PostgreSQL не найдет семафор, который он создал ранее. Возможно, другой (несвязанный) процесс - это удаление семафоров (возможно, скрипт, вызывающий ipcrm).

Используйте ipcs -s, чтобы перечислить семафоры сразу после запуска PostgreSQL, а затем снова, когда вы столкнётесь с проблемой. Если только другой процесс не удаляет семафоры быстрее, чем вы можете запустить тест ipcs -s после запуска PostgreSQL, вы должны быть в состоянии определить, удаляются ли семафоры PostgreSQL, сравнивая два списка семафоров.

Это не говорит вам, какой (корневой) процесс является виновником, но он укажет вам правильное направление. Если повезёт, то преступный процесс - это скрипт, и в этом случае вы можете искать скрипты, выполняемые root'ом, которые выполняют вызовы ipcrm.

.
3
ответ дан 3 December 2019 в 03:41

Теги

Похожие вопросы