Перейти до

Не все юзеры подключаются при рестарте


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

FreeBSD 8.2-Stable

Поставили новый сервер, новый старгазер 2.407-p1 (был 2.406)

php 5.3.8

 

 

При рестарте недоподключает 50-60 юзеров (скорее всего не срабатывает OnConnect)

 

В логах СТГ пусто.

 

Модули:

@mod_ao.conf																				  
@mod_cap_bpf.conf																		
@mod_ia.conf
@mod_rpc.conf																			  
@mod_sg.conf																				
@store_mysql.conf

 

В чем может быть проблема? Не знаю где рыть.

 

OnConnect

#!/bin/sh

LOGIN=$1
IP=$2
CASH=$3
ID=$4
/etc/stargazer/param online ${LOGIN} online	# php script добавляет в базу пометку что подключился
SPEED=`/etc/stargazer/param speed $LOGIN` # php script вытягивает скорость

fwcmd="/sbin/ipfw -q"

${fwcmd} table 13 delete ${IP}

if [ ${SPEED} = 128 ]
then
${fwcmd} table 1 add ${IP}
else
fi
if [ ${SPEED} = 256 ]
then
${fwcmd} table 2 add ${IP}
else
fi
..........

 

Скрипт запуска

#!/bin/sh
#
#
# PROVIDE: stargazer
# REQUIRE: mysql
# KEYWORD: FreeBSD
#
# Add the following lines to /etc/rc.conf to enable stargazer:
#
#stargazer_enable="YES"
#stargazer_flags="string" - Path to STG config dir
#
. /etc/rc.subr
name=stargazer
rcvar=`set_rcvar`
command=/usr/sbin/stargazer # Path to stargazer binary												 

start_precmd="start_precmd"																			
start_postcmd="start_postcmd"																		  
start_precmd()
{
   sleep 2
   }
   start_postcmd()
   {
		  ps -ax | grep $command | grep -v grep | awk '{print $1;}' > $pidfile
  }
  pidfile=/var/run/stargazer.pid
  stop_postcmd=stop_postcmd
  stop_postcmd()
  {
   killall stargazer
    rm -f $pidfile
}
# set defaults
stargazer_enable=${stargazer_enable:-"NO"}
stargazer_flags=${stargazer_flags:-"/etc/stargazer"}
required_files=${stargazer_flags}/stargazer.conf
load_rc_config $name
run_rc_command "$1"

 

P.S. Первый день работал нормально, потом нужно было рестартонуть сервер и все.

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

Top Posters In This Topic

Было как-то я тоже словил такой глюк, но только один раз. Так я тогда тоже не понял из-за чего это.

Попробуйте 407.рц-3 у меня пока эта версия стоит.

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

После ребута сервака все подключились, если рестартонуть сам стг, опять та же трабла :D

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

Ну щас около 300 онлайн

Те юзера крторые не подключились попали в OnDisconnect

Не понял. Для них что, вместо OnConnect выполнился OnDisconnect?

Или сразу после OnConnect сработал OnDisconnect?

Или не сразу а по прошествии некоторого времени?

 

Есть идеи?

Мне нужно понять условия наиболее вероятного воспроизведения проблемы чтобы у себя локально ее повторить. Тогда и идеи будут...

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

Юзера сразу после старта стг попадают в ондисконнект. НО! При рестарте сервера все ок, все подключаются. Но когда руками рестартонуть стг, некоторые юзеры попадают в ондисконнект. На тестовом сервере такого не повторяется. В чем беда, ума не приложу :)

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

Юзера сразу после старта стг попадают в ондисконнект. НО! При рестарте сервера все ок, все подключаются. Но когда руками рестартонуть стг, некоторые юзеры попадают в ондисконнект. На тестовом сервере такого не повторяется. В чем беда, ума не приложу :)

Так, еще раз. При старте для некоторых абонов выполняется OnDisconnect вместо OnConnect? Или просто не выполняется OnConnect?

Нужно учесть что рестарт - это стоп и старт. И при стопе для всех подключенных абонов выполняется OnDisconnect.

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

А, величина скрипта ОнКоннект какая? Можно было бы одним глазком на него глянуть?

Как вариант напихать разных проверок в скрипт - и посмотреть на каком месте затыкается ОнКоннект, либо он вообще не запускается.

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

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

Та, писец. Наверное конкуренты в шпионы к вам зарылись. :)

Короче, что я бы сделал, вначале скрипта ОнКоннект до любых действий пробовать писать в файл(с именем юзера), что скрипт запустился. Это первое, что проверить или вообще стж запускает скрипт, если по всем, кто всегдаонлайн и скрипт запускается, дальше смотреть, почему не отрабатываются правила. Может где-то по ходу работы скрипта вылазит ошибка и скрипт прежде временно завершает свою работу.

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

Это одна из мыслей, что мне пришла в голову.

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

Полный онконект. Версию mysql тоже менял (

 

#! /bin/sh

LOGIN=$1
IP=$2
CASH=$3
ID=$4
echo $2 >> /home/morfey/44.txt - # НЕ ЗАНОСИТ ИП НЕКОТОРЫХ ЮЗЕРОВ
/etc/stargazer/param online ${LOGIN} online # Пишет в базу что юзер онлайн, то же что и с предыдущим скриптом.
SPEED=`/etc/stargazer/param speed $LOGIN`

fwcmd="/sbin/ipfw -q"

${fwcmd} table 13 delete ${IP}

if [ ${SPEED} = 128 ]
then
${fwcmd} table 1 add ${IP}
else
fi
if [ ${SPEED} = 256 ]
then
${fwcmd} table 2 add ${IP}
else
fi
if [ ${SPEED} = 512 ]
then
${fwcmd} table 3 add ${IP}
else
fi
if [ ${SPEED} = 1024 ]
then
${fwcmd} table 4 add ${IP}
else
fi
if [ ${SPEED} = 1536  ]
then
${fwcmd} table 5 add ${IP}
else
fi
if [ ${SPEED} = 2048 ]
then
${fwcmd} table 6 add ${IP}
else
fi
if [ ${SPEED} = 3072 ]
then
${fwcmd} table 7 add ${IP}
else
fi
if [ ${SPEED} = 4096 ]
then
${fwcmd} table 8 add ${IP}
else
fi
if [ ${SPEED} = 5120 ]
then
${fwcmd} table 9 add ${IP}
else
fi
if [ ${SPEED} = 5000 ]
then
${fwcmd} table 9 add ${IP}
else
fi
if [ ${SPEED} = 10240 ]
then
${fwcmd} table 10 add ${IP}
else
fi
if [ ${SPEED} = 20480 ]
then
${fwcmd} table 11 add ${IP}
else
fi
if [ ${SPEED} = 102400 ]
then
${fwcmd} table 12 add ${IP}
else
fi

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

А, что с другими параметрами?

echo $2 >> /home/morfey/44.txt - # НЕ ЗАНОСИТ ИП НЕКОТОРЫХ ЮЗЕРОВ

IP может не заносить, потому что передается в скрипт пустое значение, нужно попоробовать с другими параметрами (например $1, $2, $3, $4)

и вообще без параметров, просто что нибуть писать, дабы проверить или вообще запускается скрипт ОнКоннект.

 

echo "user_podklychilsa" >> /home/morfey/44.txt - # НЕ ЗАНОСИТ ИП НЕКОТОРЫХ ЮЗЕРОВ

И все равно, надо еще как-то все же проверить именно какой юзер.

Например можно сделать так.

Имеем онлайн юзеров 300 человек.

Вот в нашем файле и должно быть 300 строчек "user_podklychilsa", если их нету или например 299, тогда 100% нету запуска скрипта ОнКоннект в некоторых случаях и душить нужно сам стж.

 

 

Добавляю.

Не досмотрел.

/etc/stargazer/param online ${LOGIN} online # Пишет в базу что юзер онлайн, то же что и с предыдущим скриптом.

Вот что и имеем, айпи не передается, а логин передается. Уже что-то есть, можно и обращатсья к madf'y.

У меня например уже идеи кончились, надо рыть сам стж, чего так.

 

 

ЗЫ:

Не пробовал переустановить СТЖ? Может где-то что-то кривовато стало?

И еще юзеры всегда одни и те же не срабатывают или каждый раз разные?

 

Можно попробовать так

if [ $2 == "" ]
then
 echo $1 >> /home/morfey/44.txt - # Пишем логины юзеров, у которых передается айпишка пустая.
fi

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

Ссылка на сообщение
Поделиться на других сайтах
Не пробовал переустановить СТЖ? Может где-то что-то кривовато стало?

 

И еще юзеры всегда одни и те же не срабатывают или каждый раз разные?

 

Переустанавливал, и в дебаг режиме тоже.

 

Можно попробовать так

 

if [ $2 == "" ]
then
 echo $1 >> /home/morfey/44.txt - # Пишем логины юзеров, у которых передается айпишка пустая.
fi

Вот это завтра попробую.

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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

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


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