Перейти до

Новая версия СТГ от 20.08.2004


Рекомендованные сообщения

привет всем давно не видел! ) у меня ASP Linux вроде все работает но иногда было раз такое завим СТГ что авторизироваться не могли клиенты.

Так что подтверждаю сей БАГ. :) он есть.

Подтверждаю утверждение бага =))

От себя могу добавить, что на фре 5.1 у меня этот баг повторяется с периодичностью один-два раза в сутки.

Причем в /var/log/stg.out (при компиляции с опцией NODAEMON и перенаправлением вывода программы в этот файл :)) пишется следующее:

users.cpp >> logins=УiLЇС,ЋhU[°ПVYЇ®µ+QИёevl(Ь>Ff

users.cpp >> logins=УiLЇС,ЋhU[°ПVYЇ®µ+QИёevl(Ь>Ff

users.cpp >> logins=УiLЇС,ЋhU[°ПVYЇ®µ+QИёevl(Ь>Ff

users.cpp >> logins=УiLЇС,ЋhU[°ПVYЇ®µ+QИёevl(Ь>Ff

И ни юзером не зайдешь ни админом.

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

И, видимо, он есть и в линухе и в фре.

Но в фре, похоже, дает о себе знать чаще.

 

Просьба автору разобраться, в чем баг, и выпустить билд, избавленный от этого бага.

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 89
  • Створено
  • Остання відповідь

Top Posters In This Topic

Пока проблема решается выполнением:

killall stargazer # Чтоб всех юзеров отдисконнектил

sleep 3 # Чтоб успел отдисконнектить

killall -9 stargazer # Чтоб сам сдох

stargazer # Чтоб запустился =))

каждый час по крону.

 

В общем, я думаю, что глюк прячется в данной части кода users.cpp:

------------------------------------------

433 if (res != -1)

434 {

435 //DES_setkey(context, key);

436 Blowfish_Init(&ctx, key, strlen((char*)key));

437 userIP = *((unsigned long*)mbuf.mtext);

438

439 for (int i = 0; i <= 3; i++)

440 {

441 Blowfish_Decrypt(&ctx, (uInt32 *)(mbuf.mtext + 4 + i*8), (uInt32 *)(mbuf.mtext + 4 + i*8 + 4));

442 }

443

444 memcpy(loginS, mbuf.mtext + 4, LOGIN_LEN);

445 printfd(__FILE__, "logins=%s\n", loginS);

------------------------------------------

Ссылка на сообщение
Поделиться на других сайтах

У себя вижу такую картину:

 

sockstat -4l | grep stargazer

root stargazer 70521 6 udp4 *:5555 *:*

root stargazer 70521 12 udp4 *:55317 *:*

root stargazer 70521 13 tcp4 *:5556 *:*

 

Я сейчас вплотную подошел к серьёзной настройке своего файрвола.

И меня интересует, какие порты открывает stargazer.

5555 удп и 5556 тцп я знаю что делают.

А вот что за порт udp 55317?

И нужно ли мне предусмотреть доступ к ещё каким то портам?

Ссылка на сообщение
Поделиться на других сайтах
Пока проблема решается выполнением:

 

killall stargazer # Чтоб всех юзеров отдисконнектил

sleep 3 # Чтоб успел отдисконнектить

killall -9 stargazer # Чтоб сам сдох

stargazer # Чтоб запустился =))

 

каждый час по крону.

 

Думаю, что при таком решении юзеру останется только самому сдохнуть... или прибить админа :)=) т.к. многие хотят играть в игрушки, а дисконнект на 3-4 секунды = смерти.

 

А по симптомам не совсем совпадает, т.к. админить я как раз мог, а вот авторизоваться нет. А если я правильно понял, за это отвечают разные процессы из тех 6-и, которые я наблюдаю.

Ссылка на сообщение
Поделиться на других сайтах
Думаю, что при таком решении юзеру останется только самому сдохнуть... или прибить админа  :)=) т.к. многие хотят играть в игрушки, а дисконнект на 3-4 секунды = смерти.

 

А по симптомам не совсем совпадает, т.к. админить я как раз мог, а вот авторизоваться нет. А если я правильно понял, за это отвечают разные процессы из тех 6-и, которые я наблюдаю.

По другому никак. 3 секунды выбрано как минимальное необходимое время.

 

Потом. Найден ещё один интересный глюк.

С утра смотрю - программа(инет аксес) красная, захожу терминалом - нет программы =))

Смотрю логи:

2004-010-11 06:00:04 -- User xxx disconnected.

2004-010-11 06:00:08 -- User 'xxx's' stat not read. Parameter D0.

2004-010-11 06:00:08 -- User xxx's data not read.

2004-010-11 07:00:07 -- User 'xxx's' stat not read. Parameter D0.

2004-010-11 07:00:07 -- User xxx's data not read.

2004-010-11 07:53:38 -- User 'xxx's' stat not read. Parameter D0.

2004-010-11 07:53:38 -- User xxx's data not read.

Делаю

ls -laF /var/stargazer/users/xxx/stat

-rw-r----- 1 root wheel 0 Oct 11 06:00 /var/stargazer/users/xxx/stat

Т.е. файл stat у пользователя xxx стал весить 0 кб.

У остальных пользователей все нормально.

У Пользователя xxx включен AlwaysOnline и кредит на 100000.

Я не смотрел исходники, не знаю, открывается ли файл на запись при дисконнекте. Но думаю, что открывается =))

Ссылка на сообщение
Поделиться на других сайтах

И ещё один глюк выловлен вашим непокорным слугой =)))

Иногда авторизатор перестает авторизироваться.

Преодолено удалением ини файла и настройкой заново.

Грешу на хреновое шифрование с использованием ID харда.

Ссылка на сообщение
Поделиться на других сайтах
а багов все меньше и меньше :)

Ну.... это у кого как. У меня их все больше и больше....

Причем баги становятся все страньше и страньше.... и жутче и жутче... =))

Ссылка на сообщение
Поделиться на других сайтах

Опять отрубилась авторизация. На этот раз мне повезло, я сидел в инете и видел как всё происходит. Индикатор в авторизаторе стал красным, и при этом меня выкинуло из инета (я сужу по сообщению ICQ, хотя может просто случайно совпало)

В логе остались записи:

...
2004-010-14 17:52:23 -- User angel 10.100.200.7 connected.
2004-010-14 17:52:25 -- User serja disconnected.
2004-010-14 17:52:56 -- User serja 10.100.151.55 connected.
2004-010-14 18:00:20 -- Shutting down... 

 

Но при просмотре правил iptables выяснилось, что те, кто был на этот момент авторизован, таковыми и остались. SgConfig тоже показывал, что они авторизованы. Да и аська тут-же восстановила соединение. Т.е. по факту, те, кто успел авторизоваться перешли в состояние, похожее на "Всегда Online" := А остальные остались в ауте :)

(кстати "killall stargazer" не приводит в этом случае к отключению юзеров, а "killall -9 stargazer" не даёт ему шанса это сделать)

 

Может можно как то вычислить это состояние и по крону чистить правила и рестартить биллинг ?

Ссылка на сообщение
Поделиться на других сайтах

Ну не знаю... это мне напоминает охоту на утку с помощью пулемёта :-(=) Утка пролетает редко, но пуль у нас много и если молотить непрерывно какая то обязательно попадёт :mrrr:

А то, что много шума и вони, так это нам не привыкать :argh:

Ссылка на сообщение
Поделиться на других сайтах
Ну не знаю... это мне напоминает охоту на утку с помощью пулемёта :-(=) Утка пролетает редко, но пуль у нас много и если молотить непрерывно какая то обязательно попадёт :mrrr:

А то, что много шума и вони, так это нам не привыкать :argh:

У меня сервер виснет по 1 или более раз в день.

Выделенщикам интернет нужен 24 часа в сутки.

Я не нахожусь постоянно у консоли.

 

Поэтому это единственное возможное решение на данный момент.

Ты можешь предложить более результативное решение для моей ситуации?

Ссылка на сообщение
Поделиться на других сайтах

К счастью не могу, т.к. для этого надо как то поймать зависон сервера, а виснет он у меня крайне редко. Вот с предыдущего моего поста ещё ни разу не повис :(

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

 

Бредовый вариант: отлавливать пакеты с запросом на авторизацию и потом ждать ответа на тот-же ip, если такового не было в течении пары секунд - завис!

Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.


×
×
  • Створити нове...