Встроенный Postgres не может получить PID процесса в Mac OS - PullRequest
0 голосов
/ 14 июня 2019

Я использую встроенный 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 Ответ

0 голосов
/ 18 июня 2019

В журналах обнаружилось следующее:

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

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

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

...