LINUX.ORG.RU

Не стартует ejabberd. Crash report. FreeBSD+MySQL

 , ,


0

1

Добрый день.
Пытаюсь поднять ejabberd по след схеме:
Сервер1 - FAMP (FreeBSD+Apache+PHP+MySQL)(БД для ejaaberd)
Сервер2 - FreeBSD + ejabberd
ejabberd планируется использовать только внутри корпоративной сети.

Сервер1 - Все поднял(ставил из портов), все работает.
-создал пользователя + БД для ejabberd (дамп взял из исходников)
-Проверил доступ к БД с сервера2 -все ок.
Сервер2 - ejabberd ставил из портов с поддержкой MySQL.
Настройки ejabberd.yml (только то, что менял)
hosts:
- «test.local»

auth_method: odbc

## MySQL server:
odbc_type: mysql
odbc_server: «192.168.111.105»
odbc_database: «jabdb»
odbc_username: «jabuser»
odbc_password: «12345678»

language: «ru»

### MODULES
mod_last:
db_type: odbc
mod_muc:
db_type: odbc
mod_offline:
db_type: odbc
mod_privacy:
db_type: odbc
mod_private:
db_type: odbc
mod_roster:
db_type: odbc
mod_shared_roster:
db_type: odbc
mod_vcard:
db_type: odbc

Проблема:

При запуске ejaaberd получаю ошибку:
2015-07-20 10:45:31.371 [error] <0.39.0> CRASH REPORT Process <0.39.0> with 0 neighbours exited with reason: no function clause matching lists:map(#Fun<gen_iq_handler.3.72137204>, odbc) line 1236 in application_master:init/4 line 133
2015-07-20 10:45:31.371 [info] <0.7.0> Application ejabberd exited with reason: no function clause matching lists:map(#Fun<gen_iq_handler.3.72137204>, odbc) line 1236

Прошу помочь разобраться в чем проблема.
Заранее СПС.

Ответ на: комментарий от JB

человеку, может быть, но erlang в этом плане мертвый

hizel ★★★★★
()

Конфиг ejabberd.yml

Добрый день. Полный конфиг файл

Попытался разместить под сойлером - «Слишком большое сообщение»
Закинул в блокнот и сохранил :).
Если сохранить и открыть, сохраняется норм форматирование.

Ficus666
() автор топика

Попробуй mod_muc выключи, у него нет опции db_type, если мне память не изменяет.

alex_the_v ★★★
()
Ответ на: комментарий от alex_the_v

Добрый день.
А тебя не затруднит еще раз выложить конфиг.
Толком не успел попробовать, а потом отпуск :(
Заранее СПС.

Ficus666
() автор топика
Ответ на: комментарий от Ficus666

Оооотпуск, хорошо тебе. Вечером выложу когда домой приду.

alex_the_v ★★★
()
24 сентября 2015 г.
Ответ на: комментарий от smilessss

Хз. Проверь есть ли у тебя такие файлы:

^_^ alexv@manta [~] $ rpm -ql ejabberd | grep mysql
/usr/lib64/ejabberd/ebin/p1_mysql.app
/usr/lib64/ejabberd/ebin/p1_mysql.beam
/usr/lib64/ejabberd/ebin/p1_mysql_app.beam
/usr/lib64/ejabberd/ebin/p1_mysql_auth.beam
/usr/lib64/ejabberd/ebin/p1_mysql_conn.beam
/usr/lib64/ejabberd/ebin/p1_mysql_recv.beam
/usr/lib64/ejabberd/ebin/p1_mysql_sup.beam
/usr/lib64/ejabberd/include/p1_mysql.hrl
/usr/share/ejabberd/mysql.sql
^_^ alexv@manta [~] $ 
alex_the_v ★★★
()
Ответ на: комментарий от alex_the_v

модули на месте

не подскажешь где ты базу брал?

а то я все паленые нахожу

покажи, что у тебя возвращает

echo "show tables;" | mysql -D ejabberd -h localhost -p -u ejabberd -S /var/run/mysqld/mysqld.sock 
ejabberd заменить на имя своей базы и юзера

у меня там
Tables_in_ejabberd
last
privacy_default_list
privacy_list
privacy_list_data
private_storage
rostergroups
rosterusers
spool
users
vcard
vcard_search

мне кажется, что там мало таблиц(

и еще у тебя какая версия ежаббера?
у меня 14.07, может обновить надо(

smilessss ★★★★★
()

Одбц в квадратных скобках должно быть. Листс мап к списку применяется, а не к атому

anonymous
()
Ответ на: комментарий от smilessss

У меня ежабберд такой:

^_^ alexv@manta [~] $ rpm -qa ejabberd
ejabberd-14.07-6.fc21.x86_64
^_^ alexv@manta [~] $ 

Для инициализации базы с ежаббердом идет специальный скрипт, создаешь пустую базу в UTF8, прогоняешь его и вуаля:

^_^ alexv@manta [~] $ rpm -qf /usr/share/ejabberd/mysql.sql
ejabberd-14.07-6.fc21.x86_64

Вот какие у меня таблицы:

MariaDB [ejabberd]> show tables;
+-------------------------+
| Tables_in_ejabberd      |
+-------------------------+
| archive_collections     |
| archive_global_prefs    |
| archive_jid_prefs       |
| archive_messages        |
| irc_custom              |
| last                    |
| motd                    |
| muc_registered          |
| muc_room                |
| privacy_default_list    |
| privacy_list            |
| privacy_list_data       |
| private_storage         |
| pubsub_item             |
| pubsub_node             |
| pubsub_node_option      |
| pubsub_node_owner       |
| pubsub_state            |
| pubsub_subscription_opt |
| roster_version          |
| rostergroups            |
| rosterusers             |
| spool                   |
| sr_group                |
| sr_user                 |
| users                   |
| vcard                   |
| vcard_search            |
| vcard_xupdate           |
+-------------------------+
29 rows in set (0.00 sec)

MariaDB [ejabberd]> 

alex_the_v ★★★
()
Ответ на: комментарий от alex_the_v
Database changed
mysql> show tables;
+-------------------------+
| Tables_in_ejabberd      |
+-------------------------+
| caps_features           |
| irc_custom              |
| last                    |
| motd                    |
| muc_registered          |
| muc_room                |
| privacy_default_list    |
| privacy_list            |
| privacy_list_data       |
| private_storage         |
| pubsub_item             |
| pubsub_node             |
| pubsub_node_option      |
| pubsub_node_owner       |
| pubsub_state            |
| pubsub_subscription_opt |
| roster_version          |
| rostergroups            |
| rosterusers             |
| spool                   |
| sr_group                |
| sr_user                 |
| users                   |
| vcard                   |
| vcard_search            |
| vcard_xupdate           |
+-------------------------+
26 rows in set (0.00 sec)


даже твоим скриптом не создаётся такая-же база(

можелей накидал

root@vpn:~# ls /usr/lib/x86_64-linux-gnu/ejabberd/ebin/
acl.beam		       ejabberd_web.beam	  mod_register.beam
adhoc.beam		       ejabberd_xmlrpc.beam	  mod_register_web.beam
cyrsasl_anonymous.beam	       ejd2odbc.beam		  mod_roster.beam
cyrsasl.beam		       eldap.beam		  mod_service_log.beam
cyrsasl_digest.beam	       eldap_filter.beam	  mod_shared_roster.beam
cyrsasl_plain.beam	       eldap_filter_yecc.beam	  mod_shared_roster_ldap.beam
cyrsasl_scram.beam	       eldap_pool.beam		  mod_sic.beam
ejabberd_admin.beam	       eldap_utils.beam		  mod_sip.beam
ejabberd.app		       ELDAPv3.beam		  mod_sip_proxy.beam
ejabberd_app.beam	       extauth.beam		  mod_sip_registrar.beam
ejabberd_auth_anonymous.beam   gen_iq_handler.beam	  mod_stats.beam
ejabberd_auth.beam	       gen_mod.beam		  mod_time.beam
ejabberd_auth_external.beam    gen_pubsub_node.beam	  mod_vcard.beam
ejabberd_auth_internal.beam    gen_pubsub_nodetree.beam   mod_vcard_ldap.beam
ejabberd_auth_ldap.beam        idna.beam		  mod_vcard_xupdate.beam
ejabberd_auth_odbc.beam        jd2ejd.beam		  mod_version.beam
ejabberd_auth_pam.beam	       jlib.beam		  mysql_auth.beam
ejabberd_auth_riak.beam        mod_adhoc.beam		  mysql.beam
ejabberd.beam		       mod_admin_extra.beam	  mysql_conn.beam
ejabberd_c2s.beam	       mod_announce.beam	  mysql_recv.beam
ejabberd_c2s_config.beam       mod_blocking.beam	  nl.msg
ejabberd_captcha.beam	       mod_caps.beam		  node_buddy.beam
ejabberd_commands.beam	       mod_carboncopy.beam	  node_club.beam
ejabberd_config.beam	       mod_configure2.beam	  node_dag.beam
ejabberd_ctl.beam	       mod_configure.beam	  node_dispatch.beam
ejabberd_frontend_socket.beam  mod_disco.beam		  node_flat.beam
ejabberd_hooks.beam	       mod_echo.beam		  node_flat_odbc.beam
ejabberd_http.beam	       mod_http_bind.beam	  node_hometree.beam
ejabberd_http_bind.beam        mod_http_fileserver.beam   node_hometree_odbc.beam
ejabberd_http_poll.beam        mod_ip_blacklist.beam	  node_mb.beam
ejabberd_listener.beam	       mod_irc.beam		  node_pep.beam
ejabberd_local.beam	       mod_irc_connection.beam	  node_pep_odbc.beam
ejabberd_logger.beam	       mod_last.beam		  node_private.beam
ejabberd_node_groups.beam      mod_logdb.beam		  node_public.beam
ejabberd_odbc.beam	       mod_logdb_mnesia.beam	  nodetree_dag.beam
ejabberd_odbc_sup.beam	       mod_logdb_mnesia_old.beam  nodetree_tree.beam
ejabberd_piefxis.beam	       mod_logdb_mysql5.beam	  nodetree_tree_odbc.beam
ejabberd_rdbms.beam	       mod_logdb_mysql.beam	  nodetree_virtual.beam
ejabberd_receiver.beam	       mod_logdb_pgsql.beam	  odbc_queries.beam
ejabberd_regexp.beam	       mod_muc_admin.beam	  pl.msg
ejabberd_riak.beam	       mod_muc.beam		  pubsub_db_odbc.beam
ejabberd_riak_sup.beam	       mod_muc_log.beam		  pubsub_index.beam
ejabberd_router.beam	       mod_muc_room.beam	  pubsub_subscription.beam
ejabberd_s2s.beam	       mod_offline.beam		  pubsub_subscription_odbc.beam
ejabberd_s2s_in.beam	       mod_ping.beam		  randoms.beam
ejabberd_s2s_out.beam	       mod_pres_counter.beam	  ru.msg
ejabberd_service.beam	       mod_privacy.beam		  scram.beam
ejabberd_sm.beam	       mod_private.beam		  shaper.beam
ejabberd_socket.beam	       mod_proxy65.beam		  str.beam
ejabberd_stun.beam	       mod_proxy65_lib.beam	  translate.beam
ejabberd_sup.beam	       mod_proxy65_service.beam   uk.msg
ejabberd_system_monitor.beam   mod_proxy65_sm.beam	  win32_dns.beam
ejabberd_tmp_sup.beam	       mod_proxy65_stream.beam	  XmppAddr.beam
ejabberd_update.beam	       mod_pubsub.beam
ejabberd_web_admin.beam        mod_pubsub_odbc.beam


твой конфиг правил, все равно не работает(
я уже думаю о том, что дело в дебиановском пакете, может он был собран без поддержки мускуля

smilessss ★★★★★
()
Ответ на: комментарий от smilessss

Там, на самом деле, многие таблицы (pubsub*, archive*) досоздаются автоматически модулями, так что не парься, скрипт создает все правильно.

Блин, какие-то мускульные модули у тебя там присутствуют, вроде. А что за ошибка-то в логе? Хотя, эти эрланговские логи без хорошего косяка не разберешь, но все равно покажи.

alex_the_v ★★★
()
Ответ на: комментарий от alex_the_v

делаем рестарт и

# service ejabberd force-reload 
Job for ejabberd.service failed. See 'systemctl status ejabberd.service' and 'journalctl -xn' for details.


# systemctl status ejabberd.service
● ejabberd.service - LSB: Starts ejabberd jabber server
   Loaded: loaded (/etc/init.d/ejabberd)
   Active: failed (Result: exit-code) since Sat 2015-09-26 03:51:11 EDT; 1min 29s ago
  Process: 1644 ExecStart=/etc/init.d/ejabberd start (code=exited, status=1/FAILURE)

Sep 26 03:50:04 zz.net su[1648]: pam_unix(su:session): session opened for user ejabberd by (uid=0)
Sep 26 03:50:04 zz.net su[1688]: Successful su for ejabberd by root
Sep 26 03:50:04 zz.net su[1688]: + ??? root:ejabberd
Sep 26 03:50:04 zz.net su[1688]: pam_unix(su:session): session opened for user ejabberd by (uid=0)
Sep 26 03:50:04 zz.net su[1715]: Successful su for ejabberd by root
Sep 26 03:50:04 zz.net su[1715]: + ??? root:ejabberd
Sep 26 03:50:04 zz.net su[1715]: pam_unix(su:session): session opened for user ejabberd by (uid=0)
Sep 26 03:51:11 zz.net systemd[1]: ejabberd.service: control process exited, code=exited status=1
Sep 26 03:51:11 zz.net systemd[1]: Failed to start LSB: Starts ejabberd jabber server.
Sep 26 03:51:11 zz.net systemd[1]: Unit ejabberd.service entered failed state.


2015-09-26 03:58:44.507 [critical] <0.37.0>@gen_mod:start_module:90 Problem starting the module mod_mam 
for host <<"zz.net">>
 options: [{request_activates_archiving,false}]
 error: undef
[{mod_mam,start,
          [<<"zz.net">>,[{request_activates_archiving,false}]],
          []},
 {gen_mod,start_module,3,[{file,"src/gen_mod.erl"},{line,82}]},
 {lists,foreach,2,[{file,"lists.erl"},{line,1336}]},
 {ejabberd_app,start,2,[{file,"src/ejabberd_app.erl"},{line,67}]},
 {application_master,start_it_old,4,
                     [{file,"application_master.erl"},{line,272}]}]
2015-09-26 03:58:44.508 [critical] <0.37.0>@gen_mod:start_module:95 ejabberd initialization was 
aborted because a module start failed.

smilessss ★★★★★
()
Ответ на: комментарий от smilessss

Дык оно жалуется что mod_mam не поднялся. Закомментируй его в конфиге в конце, попробуй без него взлететь, он не жизненно важен. Потом разберешься и починишь.

alex_the_v ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.