Ошибка поиска символа с момента обновления до pg 1.2.x - PullRequest
0 голосов
/ 04 марта 2020

После обновления до pg 1.2.2 (с версии 1.1.4) я получаю следующую ошибку при каждой попытке доступа к базе данных:

ruby: symbol lookup error: /home/zifnab/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/pg-1.2.2/lib/pg_ext.so: undefined symbol: PQresultMemorySize

Понижение до 1.1.4 «исправления» проблема, но другие члены моей команды сообщают, что 1.2.2 работает для них нормально, поэтому здесь происходит кое-что еще.

Некоторые дополнительные детали:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.3 LTS
Release:    18.04
Codename:   bionic


$ ruby --version
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]

$ rails --version
Rails 5.2.4.1

$ postgres --version
postgres (PostgreSQL) 11.6

Я немного погуглил, но единственное, что я обнаружил, была проблема с герою в январе: https://status.heroku.com/incidents/1940

Она была решена, но они не упоминают, что это была за проблема (похоже, точно та же проблема, что и у меня).

1 из моих коллег по Ма c сообщает, что у него нет проблем с этим, и еще один на Ubuntu 17.1.0 аналогично не имеет проблем (хотя он на postgres 9.6.9, но учтите, что наш рабочий сервер работает 11.6, как у меня локально и снова, не имеет проблем)

1 Ответ

0 голосов
/ 04 марта 2020

Мой коллега обнаружил эту проблему: https://github.com/ged/ruby-pg/issues/332

Этот комментарий вызвал для меня звонок:

PQresultMemorySize - новый в PostgreSQL -12, так что вы явно собрали Ruby -pg с версией 12, но попробуйте использовать его в версии 11. Это, как ожидается, приведет к ошибке компоновщика во время выполнения.

Теперь я на postgres версии 11 и не использовал 12, так что я не думал, что это повлияло на меня, но потом я вспомнил, что я вроде как-то случайно обновил свой postgres на прошлой неделе до 12, а затем pani c - понизил его снова, потому что Я не хотел, чтобы это сломало мой местный материал (и мне нравится это, чтобы отразить производство, которое еще не на 12). Что ж, похоже, что я, возможно, построил гем pg одновременно с этим, или что-то в этом роде, поэтому понижение дает мне эту ошибку.

Удаление pg, а затем повторная установка исправили проблему. Это всегда что-то простое.

...