ejabberd и "вызов неопределенной функции pgsql: squery" - PullRequest
0 голосов
/ 01 июля 2018

Я использую ejabberd 18.04 для Debian 9 и postgresql. Я могу создать пользователя, и я вижу это в таблице пользователей. Я могу войти через клиента и через webadmin. Следовательно, ejabberd и postgresql работают. Но когда я пытаюсь добавить пользователя в список (подключен модуль mod_roster), я получаю следующий вывод:

...
11:49:35.760 [error] gen_fsm <0.397.0> in state session_established terminated with reason: call to undefined function pgsql:squery(<0.418.0>, [<<"begin;">>], 59000)
11:49:35.760 [error] CRASH REPORT Process <0.397.0> with 0 neighbours exited with reason: call to undefined function pgsql:squery(<0.418.0>, [<<"begin;">>], 59000) in p1_fsm:terminate/8 line 760
11:49:35.761 [error] Supervisor 'ejabberd_sql_sup_192.168.56.111' had child 6 started with ejabberd_sql:start_link(<<"192.168.56.111">>, 30000) at <0.397.0> exit with reason call to undefined function pgsql:squery(<0.418.0>, [<<"begin;">>], 59000) in context child_terminated
11:49:35.761 [error] gen_fsm <0.401.0> in state session_established terminated with reason: call to undefined function pgsql:squery(<0.422.0>, [<<"begin;">>], 59000)
11:49:35.765 [error] CRASH REPORT Process <0.401.0> with 0 neighbours exited with reason: call to undefined function pgsql:squery(<0.422.0>, [<<"begin;">>], 59000) in p1_fsm:terminate/8 line 760
11:49:35.776 [error] Supervisor 'ejabberd_sql_sup_192.168.56.111' had child 10 started with ejabberd_sql:start_link(<<"192.168.56.111">>, 30000) at <0.401.0> exit with reason call to undefined function pgsql:squery(<0.422.0>, [<<"begin;">>], 59000) in context child_terminated
...

Что это значит?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

Я столкнулся с той же проблемой на моей машине Debian Stretch. Оказалось, что используемая мной версия Ejabberd была несовместима с установленным пакетом erlang-p1-pgsql.

Пакет ejabberd был взят из Debian stretch-backports, а пакет erlang-p1-pgsql - из основного репо. Быстрое обновление / установка из репозитория Backports сделали свое дело:

apt-get install -t stretch-backports erlang-p1-pgsql

Затем перезапустите Ejabberd, и ошибка должна быть исправлена: -)

(я пишу этот более полный ответ на случай, если у кого-то возникнет такая же проблема, как у меня)

0 голосов
/ 01 июля 2018

Полагаю, ошибка имеет ответ:

завершается по причине: вызов неопределенной функции pgsql: squery

Это означает, что вы вызываете неопределенную функцию. Вам необходимо проверить:

  1. в ваш проект входит модуль или приложение pgsql
  2. в приложении или модуле pgsql попробуйте найти функцию squery
  3. Кроме того, необходимо проверить документацию приложения pgsql , возможно, эта функция устарела или была удалена из версий, которые вы пытаетесь использовать.

Возможно, эта функция в pgsql , но она используется неправильно, например: скажем, есть экспортированная функция squery с 2 аргументами, но в ваш проект вызывается с 3 аргументами, в этом случае вы также получите сообщение об ошибке - , прерванное по причине: вызов неопределенной функции pgsql: squery .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...