Встроенный Postgres не может получить PID процесса в Mac OS

Я использую встроенный PostgreSQL с Java 11 для тестирования интеграции. В Windows он работает нормально, но в Mac сначала загружает двоичные файлы Mac OS (что ожидается):

Extract /Users/fubar/.embedpostgresql/postgresql-11.1-1-osx-binaries.zip START

Но тогда это терпит неудачу со следующей трассировкой стека:

java.lang.NoSuchFieldException: handle
at java.base/java.lang.Class.getDeclaredField(Class.java:2411)
at de.flapdoodle.embed.process.runtime.Processes.windowsProcessId(Processes.java:109)
at de.flapdoodle.embed.process.runtime.Processes.access$200(Processes.java:51)
at de.flapdoodle.embed.process.runtime.Processes$PidHelper$2.getPid(Processes.java:209)

Когда я смотрю в Processes Исходный код я вижу, что внутренне он использует PidHelper.LEGACY, что не удается при первой попытке получить PID через unixLikeProcessId(),

Может ли кто-нибудь дать подсказку, почему это происходит или как это исправить?

1 ответ

Логи выявили следующее:

Possibly failed to run initdb:
initdb: invalid locale name "en-US"

Так что initdb не удалось, экземпляр PostgeSQL не запустился и не создал postmaster.pid файл, который все привело к ошибке выше.

Проблема была в локали, которая была настроена через additionalInitDbParams=[--locale=en-US, -EUTF8],

Другие вопросы по тегам