Доброго времени суток!
Что есть:
openSUSE 11.0
ejabberd 2.1.0
PHP 5.2.9
MySQL 5.0.51
Внешняя авторизация в MySQL через PHP-скрипт(http://www.ejabberd.im/check_mysql_php)
~1500 пользователей, ~500 постоянно подключенных.
И в довесок к этому есть следующая проблема:
После запуска сервера в течении нескольких дней все работает отлично, потом начинаются глюк с авторизацией - пускает любого пользователя с любым паролем. Иногда не с первого раза, но все равно пускает. Т.е. ввожу в клиенте несуществующего пользователя или существующего, но с неправильным паролем и подключаюсь как ни в чем не бывало. Иногда отбривает с первого раза, но после пару переподключений все равно пускает.
Точно такая же ситуация с веб-админкой. Ввожу пароль админа, заведомо неправильный пароль - пару раз отбривает, потом пускает.
По логу скрипта видно, что сам скрипт отрабатывает нормально. Т.е. с БД общается, отвечает что пользователь/пароль неправильный, но у ejabberd как будто свое мнение на этот счет:
Nov 9 15:17:59 ns01 pipe-auth: Reading 29 bytes ...
Nov 9 15:17:59 ns01 pipe-auth: IN: auth:zigmund:domain.com:passw
Nov 9 15:17:59 ns01 pipe-auth: GO: auth:zigmund:domain.com:passw
Nov 9 15:17:59 ns01 pipe-auth: data length is : 29
Nov 9 15:17:59 ns01 pipe-auth: Command was : auth
Nov 9 15:17:59 ns01 pipe-auth: Command : auth:zigmund:domain.com:cffbad68bb97a6c3f943538f119c992c ==> 0
Nov 9 15:17:59 ns01 pipe-auth: RE:
Nov 9 15:17:59 ns01 pipe-auth: OUT: 2
Подключение внешней авторизации в ejabberd:
{host_config, "domain.com",
[
{auth_method, external},
{extauth_program, "/home/jabber/current/conf/auth-domain-com.php"}
]}.
Вначале стоял другой PHP-скрипт авторизации, было точно такая же проблема. То же самое и с ejabberd - обновлял несколько версий, глюк остается.
Такое ощущение как будто буфер пайпа переполняет, или еще что-нибудь в этом роде... После перезапуска все отлично в течении нескольких дней / недели, потом опять все заново.
Единственно, что могу посоветовать в данной ситуации - попробовать обновить ежа и erlang
Внешнюю авторизацию пробовал цеплять от друпала, но возникли какие то глюки (честно не помню какие) и я отказался от неё.
Цитата: Vicpo от 09 Ноября 2010, 15:46Единственно, что могу посоветовать в данной ситуации - попробовать обновить ежа и erlang
Внешнюю авторизацию пробовал цеплять от друпала, но возникли какие то глюки (честно не помню какие) и я отказался от неё.
Erlang и ejabber обновлялись черти сколько раз, авторизация сначала тоже стояла та самая, для друпала, немного переделанная, с ней были те же самые глюки.
А сейчас какую авторизацию используешь? Я уже думаю перловую попробовать или еще какую, но не думаю что ситуация изменится - со всеми внешними авторизациями ejabberd работает одинаково, через stdin/stdout.
Используется драйвера odbc и база mysql. Внешняя авторизация не используется.
Цитата: Vicpo от 09 Ноября 2010, 16:01Используется драйвера odbc и база mysql. Внешняя авторизация не используется.
Ясно. У меня авторизация привязана к базе почтовых пользователей, нет желание в исходниках ежика копаться, таблички да поля править. Ерланг - та еще мутотень.
Пока прикрутил перловую авторизовалку, посмотрим как себя поведет. На ЛОРе кое-чего дельного по отладке посоветовали... в общем, пока наблюдаю.
На счет ерланг согласен...
Можно попробовать по крону раз в неделю конфиг перезагружать, вроде как буфер скидывает у ежа после этого
Доброго времени суток.
Есть ejabberd, работает на fedora
Неделю-две назад, менял hostname в /etc/sysconfig/network и в /etc/hosts
сегодня утром обнаружил что ejabberd не пашет, вот что в логе:
[root@fedora ~]# tail /var/log/ejabberd/ejabberd.log
ejabberd@fedora
Check the ejabberd guide for details about changing the
computer hostname or Erlang node name.
=INFO REPORT==== 2011-04-29 10:08:57 ===
application: ejabberd
exited: {bad_return,{{ejabberd_app,start,[normal,[]]},
{'EXIT',"Error reading Mnesia database"}}}
type: temporary
[root@fedora ~]# tail /var/log/ejabberd/ejabberd.log
ejabberd@fedora
Check the ejabberd guide for details about changing the
computer hostname or Erlang node name.
=INFO REPORT==== 2011-04-29 10:08:57 ===
application: ejabberd
exited: {bad_return,{{ejabberd_app,start,[normal,[]]},
{'EXIT',"Error reading Mnesia database"}}}
type: temporary
[root@fedora ~]#
Вот кусок ejabberd.cfg
...
%%%. ================
%%%' SERVED HOSTNAMES
%%
%% hosts: Domains served by ejabberd.
%% You can define one or several, for example:
%% {hosts, ["example.net", "example.com", "example.org"]}.
%%
{hosts, ["10.168.5.1"]}.
...
В jabber-клиенте вписываю username@10.168.5.1 (работало).
что я сломал?
Цитата: vlvasya от 29 Апреля 2011, 11:14что я сломал?
Версия ejabberd, erlang и mnesia какая?
Цитата: TLemur от 30 Апреля 2011, 09:19Версия ejabberd, erlang и mnesia какая?
Name : ejabberd
Arch : i686
Version : 2.1.6
Release : 4.fc13
Name : erlang
Arch : i686
Version : R13B
Release : 04.15.fc13
[root@10 ~]# yum info mnesia
Loaded plugins: presto, refresh-packagekit
Error: No matching Packages to list
http://www.process-one.net/docs/ejabberd/guide_en.html#htoc78
как узнать $OLDNODE если я его не помню?
Цитата: vlvasya от 03 Мая 2011, 16:59как узнать $OLDNODE если я его не помню?
Спросить у Василия Федотовича.
хорошо, а есть возможность сейчас полностью все грохнуть, чтобы заново настроить, я пробовал просто снести ejabberd и erlang, и удалить их конфиги, не помогло, все равно ёж не стартует с той-же ошибкой

/dry.gif\' class=\'bbc_emoticon\' alt=\'<_<\' />
1. Удалить erlang, ejabberd, конфиги
2. rm -rf /var/lib/ejabberd/*
3. Поставить всё обратно
4. Запустить ejabberd.