Иногда при запуске Postgres POD в OpenShift отображается следующий код ошибки
pg_ctl: another server might be running; trying to start server anyway
waiting for server to start....LOG: redirecting log output to logging
collector process
HINT: Future log output will appear in directory "pg_log".
..... done
server started
=> sourcing /usr/share/container-scripts/postgresql/start/set_passwords.sh ...
ERROR: tuple concurrently updated
Чтобы исправить проблему:
oc debug
сеанс со стручком.Из строки cmd сеанса отладки;
run-postgresql
. Это CMD
для образа докера. В рамках процесса запуска скрипт создает ряд файлов, которые в противном случае не существовали бы в модуле, а именно: /var/lib/pgsql/openshift-custom-postgresql.conf
и /var/lib/pgsql/passwd
, что остановит вас от запуска любого из pg_ctl
команды. Когда вы запустите команду, вы должны увидеть тот же вывод ошибки, который указан выше.Бегать pg_ctl stop -D /var/lib/pgsql/data/userdata
чтобы полностью выключить Postgres. Тебе следует увидеть;
waiting for server to shut down.... done
server stopped
Бегать pg_ctl start -D /var/lib/pgsql/data/userdata
для запуска Postgres. Вы должны увидеть следующий вывод, и он должен ждать там неопределенно долго (без ошибок);
server starting
sh-4.2$ LOG: redirecting log output to logging collector process
HINT: Future log output will appear in directory "pg_log".
Нажмите enter
пару раз, чтобы вернуться к командной строке.
Бегать pg_ctl stop -D /var/lib/pgsql/data/userdata
и дождитесь остановки postgres. Это обеспечит чистое завершение работы.
waiting for server to shut down.... done
server stopped
Выйдите из сеанса отладки.
Решение найдено после долгой борьбы: https://pathfinder-faq-ocio-pathfinder-prod.pathfinder.gov.bc.ca/DB/PostgresqlCrashLoopTupleError.html Кредиты принадлежат автору: Уэйд Барнс