Встроенный 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]
,