Перейти к содержимому

Stg-2.406-rc1


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

Итак, пришло время первого релиз-кандидата: stg-2.406-rc1

По сравнению с beta-версией изменений немного. В основном - чистка кода. Был исправлен баг, который вызывал падения при останове Stargazer на старых версиях libc (по крайней мере я его четко фиксировал на FreeBSD 5.3-RELEASE). Кому интересно, подробности про него можно найти здесь (на украинском языке).

Почистил отладочный вывод. Добавил явную выгрузку плагинов (в релизе верну ее в автоматический режим). Перекомпоновал последовательность инициализации и останова различных подсистем.

Внес небольшие изменения в систему сборки. Теперь флаги компилятора и компоновщика для плагина MySQL определяются с помощью утилиты mysql_config (должен быть в стандартном devel-пакете на всех системах). Скрипт build при отладочной сборке не запускает make автоматически (сделал для удобства багрепортов - чтобы не просить показать первые N строк лога сборки). Не-devel сборка происходит как и раньше.

В КК добавил ключ --disable-stat. Пользоваться так:

получение статуса:

sgconf get -s <server> -p <port> -a <admin> -w <admin_pass> -u <user> --disable-stat

отключение детальной статистики:

sgconf set -s <server> -p <port> -a <admin> -w <admin_pass> -u <user> --disable-stat 1

включение детальной статистики:

sgconf set -s <server> -p <port> -a <admin> -w <admin_pass> -u <user> --disable-stat 0

Еще в КК починил результат операции. Одно время он говорил Error при успешной отправке сообщения, а все остальное работало нормально. В прошлой версии стало наоборот - он стал говорить Ok при успешной отправке сообщения, зато все остальные операции выдавали Error. Проблема оказалась не такой уж и тривиальной.

Эту сборку я тестировал на следующих системах:

Gentoo:

gcc-3.3.5

gcc-3.3.5-hardened

gcc-3.3.5-hardenednopie

gcc-3.3.5-hardenednossp

gcc-4.1.1

gcc-4.3.3

Debian:

gcc-4.3.2

FreeBSD:

gcc-3.4.2

Еще раз напомню, что gcc ветки 2.x больше не поддерживается.

Хотел еще дождаться результатов сборки от мейнтейнеров ALTLinux, но не дождался :)

Отправку сообщений с помощью КК тестировал из юникодной локали и из KOI8-R.

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

Top Posters In This Topic

Top Posters In This Topic

Posted Images

2009-03-24 23:47:35 -- ---------------------------------------------

2009-03-24 23:51:13 -- Stg v. 2.406-rc1

2009-03-24 23:51:13 -- Message queue created successfully. msgKey=5555 msgID=360448

2009-03-24 23:51:13 -- Timer thread started successfully.

2009-03-24 23:51:13 -- Storage plugin: ''

2009-03-24 23:51:14 -- Queue removed successfully.

2009-03-24 23:51:14 -- StgTimer: Stop successfull.

2009-03-24 23:51:14 -- Stg stopped successfully.

2009-03-24 23:51:14 -- ---------------------------------------------

 

Чет у меня не хочет стартовать, собралось нормально.

ALT-server-2.6.18-32x64, queue.

Ссылка на сообщение
Поделиться на других сайтах
2009-03-24 23:47:35 -- ---------------------------------------------

2009-03-24 23:51:13 -- Stg v. 2.406-rc1

2009-03-24 23:51:13 -- Message queue created successfully. msgKey=5555 msgID=360448

2009-03-24 23:51:13 -- Timer thread started successfully.

2009-03-24 23:51:13 -- Storage plugin: ''

2009-03-24 23:51:14 -- Queue removed successfully.

2009-03-24 23:51:14 -- StgTimer: Stop successfull.

2009-03-24 23:51:14 -- Stg stopped successfully.

2009-03-24 23:51:14 -- ---------------------------------------------

 

Чет у меня не хочет стартовать, собралось нормально.

ALT-server-2.6.18-32x64, queue.

Такая же фигня была: не бери конфиг от старой системы, правь новый.

Потом только меняешь /var/stargazer/users/, /var/stargazer/admins/, /etc/stargazer/OnConnect, /etc/stargazer/OnDisconnect - на старые и стартуй stargazer.

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

Хез, но у меня выдавала такую же ошибку.

Тогда я оставил каталоги прежнего СТГ на своих местах, установил новый СТГ поверх, стартанул его - он запустился, только ругнулся на отсутствующие интерфейсы (там в конфиге указаны - у меня их нет) - и завершил процесс.

Тогда я подправил конфиг под себя - поменял порт авторизатора на 8888, оставил ИФ rl0, сменил права на файлы на 777, убрал лишние направления. Потом, как сказал выше - вернул /var/stargazer/users/, /var/stargazer/admins/, /etc/stargazer/OnConnect, /etc/stargazer/OnDisconnect - из резервной копии (установка точно меняет /var/stargazer/admins/ и скрипты /etc/stargazer/OnConnect, /etc/stargazer/OnDisconnect, а /var/stargazer/users/ я для верности восстановил), потом стартанул СТГ и вуаля. :)

 

Щас вроде собрал sgconf. У кого он при старте бибилиотеку просит - её надо вытащить из дистибутива (каталог /lib/)

и положить в /usr/lib/stg/.

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

новая версия собралась и запустилась нормально. ждём дальнейших результатов работы.

 

можно получить более подробное описание опции "executersnum"? по умолчанию этот параметр равен 1. в каком случае его нужно увеличить? в какой ситуации-случае?

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

ExecutersNum отвечает за количество запущеных "выполнителей скриптов" - процессов stg-exec. Его можно увеличить если скорость отработки скриптов не удовлетворяет. Рекомендую увеличивать, если скрипты сами по себе тормозные.

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

Нашёл бяку: если в stargazer.conf сделать это:

RemoveBak = yes
ReadBak = yes

то при попытке запуска он вываливается с этой же ошибкой.

У меня FreeBSD 6.2, файлы базы СТГ-шные.

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

этот ответ я нашел и в официальной справке. если параметр выставить - 2 или 10? на что он повлияет? каким образом выяснить в каких случаях нужно менять этот параметр и что означает "тормознутый скрипт"?

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

Исправил, перезалил архив. Кому лень вытягивать весь архив - вот патч: p3.patch

Накладывать из корня так:

$ patch -p0 < p3.patch

Ссылка на сообщение
Поделиться на других сайтах
этот ответ я нашел и в официальной справке. если параметр выставить - 2 или 10? на что он повлияет? каким образом выяснить в каких случаях нужно менять этот параметр и что означает "тормознутый скрипт"?

Если выставить 2 - запустится 2 процесса stg-exec и система сможет одновременно выполнять 2 скрипта. Если выставить 10 - 10, соответственно.

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

Ссылка на сообщение
Поделиться на других сайтах
Если выставить 2 - запустится 2 процесса stg-exec и система сможет одновременно выполнять 2 скрипта. Если выставить 10 - 10, соответственно.

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

 

При установке значения 2 и больше наблюдаются проблемы с одновременным выполнением скриптов - чего-то некоторые правила iptables вообще не отрабатывают. Особенно это сказывается при старте старгейзера - не всем alwaysOnline пользователям поднимались разрешающие правила. Так и не разобрался почему. Оставил значение 1.

Ссылка на сообщение
Поделиться на других сайтах
При установке значения 2 и больше наблюдаются проблемы с одновременным выполнением скриптов - чего-то некоторые правила iptables вообще не отрабатывают. Особенно это сказывается при старте старгейзера - не всем alwaysOnline пользователям поднимались разрешающие правила. Так и не разобрался почему. Оставил значение 1.

это в какой версии наблюдалось? и на какой конфигурации ПС?

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

Да нет, конфигурация тут не при чем. Возможно дело в скриптах. Может они не могут выполняться одновременно.

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

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

Ссылка на сообщение
Поделиться на других сайтах
Появилась проблема при старте страгайзера не образатываются OnConnect для пользователей всегда онлайн после старта в конфигураторе ставлю и убираю галочку "всегда онлайн" ставлю снова - инет появляется. В логах на этот счет ничего. Подскажите что можкт быть

 

Вот, и у меня такое было, и только на пользователях "всегда онлайн", и только если stg-exec>1

Оставил stg-exec=1 и в ус не дую :)

Ссылка на сообщение
Поделиться на других сайтах
а сюда можно их предоставить? для сравнения... может отыщутся общие "глючные" нюансы.

Вот собственно и скрипты буду рад если укажут на возможные ошибки

#OnConnect
#!/bin/bash

# Login
LOGIN=$1
#user IP
IP=$2
#cash
CASH=$3
#user ID
ID=$4
DIRS=$5
DinM=( 31 28 31 30 31 30 31 31 30 31 30 31 )
D=`date '+%Y-%m-%d %H-%M-%S'`
Month=${D:5:2}
Day=${D:8:2}
D=`date '+%Y-%m-%d %H-%M-%S'`
usersconf="/stargazer/bases/users/$LOGIN/conf"
userstat="/stargazer/bases/users/$LOGIN/stat"
tariffs="/stargazer/bases/tariffs"
#NEW_IP="/stargazer/bases/Userdata0"
#IFACE="/stargazer/bases/Userdata1"
NM="NETMASK"
BC="BRODKAST"
GW="GW"
realip_key="realip"
k=kbit
TariffName=`cat "$usersconf" | grep "Tariff=" | cut -d"=" -f2`
IP_=`cat "$usersconf" | grep "IP=" | cut -d"=" -f2`
CashN=`cat "$userstat" | grep "Cash=" | cut -d"=" -f2`
NEW_IP=`cat "$usersconf" | grep "Userdata0=" | cut -d"=" -f2`
IFACE=`cat "$usersconf" | grep "Userdata1=" | cut -d"=" -f2`
echo IFACE=$IFACE New_IP=$NEW_IP
if [ ! -e "$usersconf" ]; then
echo "ERROR: User file '$usersconf' not found" >> $logfile
exit
fi

TariffName=`cat "$usersconf" | grep "Tariff=" | cut -d"=" -f2`
if [ "_${TariffName#$realip_key}" != "_${TariffName}" ]; then #
#ДЛЯ ТАРИФОВ С РЕАЛЬНИКОМ
ifconfig $IFACE $NEW_IP netmask $NM broadcast $BC
route add $NEW_IP gw $GW netmask 0.0.0.0 metric 1 dev $IFACE
iptables -t nat -A PREROUTING -p tcp -d $NEW_IP -j DNAT --to-destination $IP_
iptables -A FORWARD -i eth0 -d $IP_ -j QUEUE
iptables -A FORWARD -i eth1 -d $IP_ -j QUEUE
iptables -I FORWARD -s $IP_ ! -d 10.0.0.0/8 -j QUEUE
iptables -I FORWARD -d $IP_ ! -s 10.0.0.0/8 -j QUEUE
iptables -t nat -I POSTROUTING 1 -s $IP_ -d ! 10.0.0.0/8 -j MASQUERADE
iptables -t nat -I POSTROUTING -s $IP_ -j SNAT --to-source $NEW_IP
iptables -t nat -I POSTROUTING -d $NEW_IP -s 10.0.0.0/8 -j SNAT --to-source $IP_ 
else
# ДЛЯ ТАРИФОВ БЕЗ РЕАЛЬНИКА
inet=$DIRS
inet2=${inet:1:1}
#	echo  IP=$IP_ dirs=$DIRS inet=$inet2 >> /etc/stargazer/log
  if [ $inet2 != "0" ]; then
 iptables -I FORWARD -s $IP_ ! -d 10.0.0.0/8 -j QUEUE
 iptables -I FORWARD -d $IP_ ! -s 10.0.0.0/8 -j QUEUE
 iptables -t nat -I POSTROUTING 1 -s $IP_ -d ! 10.0.0.0/8 -j MASQUERADE
  fi	
  games=$DIRS
  games2=${games:0:1}
  if [ $games2 != "0"  ]; then
 iptables -I FORWARD -s $IP_ -d x.x.x.x/x -j QUEUE
 iptables -I FORWARD -d $IP_ -s x.x.x.x/x -j QUEUE
 iptables -t nat -I POSTROUTING 1 -s $IP_ -d x.x.x.x/x -j MASQUERADE
 iptables -I FORWARD -s $IP_ -d x.x.x.x -j QUEUE
 iptables -I FORWARD -d $IP_ -s x.x.x.x -j QUEUE
 iptables -t nat -I POSTROUTING 1 -s $IP_ -d x.x.x.x -j MASQUERADE
  fi
fi

#OnDisconnect
#!/bin/bash

#LOGIN="fssc"
# Login
LOGIN=$1
#user IP
IP=$2
#cash
CASH=$3
#user ID
ID=$4
DinM=( 31 28 31 30 31 30 31 31 30 31 30 31 )
D=`date '+%Y-%m-%d %H-%M-%S'`
Month=${D:5:2}
Day=${D:8:2}

D=`date '+%Y-%m-%d %H-%M-%S'`
usersconf="/stargazer/bases/users/$LOGIN/conf"
userstat="/stargazer/bases/users/$LOGIN/stat"
tariffs="/stargazer/bases/tariffs"
NM="NETMASK"
BC="BRODKAST"
GW="GW"
realip_key="realip"
k=kbit
TariffName=`cat "$usersconf" | grep "Tariff=" | cut -d"=" -f2`
IP_=`cat "$usersconf" | grep "IP=" | cut -d"=" -f2`
CashN=`cat "$userstat" | grep "Cash=" | cut -d"=" -f2`
NEW_IP=`cat "$usersconf" | grep "Userdata0=" | cut -d"=" -f2`
IFACE=`cat "$usersconf" | grep "Userdata1=" | cut -d"=" -f2`
echo $IP_
if [ ! -e "$usersconf" ]; then
echo "ERROR: User file '$usersconf' not found" >> $logfile
exit
fi

TariffName=`cat "$usersconf" | grep "Tariff=" | cut -d"=" -f2`
if [ "_${TariffName#$realip_key}" != "_${TariffName}" ]; then #
# ДЛЯ ТАРИФОВ С РЕАЛЬНИКОМ
echo realIP
iptables -D FORWARD -i eth0 -d $IP_ -j QUEUE
iptables -t nat -D PREROUTING -p tcp -d $NEW_IP -j DNAT --to-destination $IP_
route del $NEW_IP gw $GW netmask 0.0.0.0 metric 1 dev $IFACE
ifconfig $IFACE down
iptables -D FORWARD -i eth0 -d $IP_ -j QUEUE
iptables -D FORWARD -i eth1 -d $IP_ -j QUEUE
iptables -D FORWARD -s $IP_ ! -d 10.0.0.0/8 -j QUEUE
iptables -D FORWARD -d $IP_ ! -s 10.0.0.0/8 -j QUEUE
iptables -t nat -D POSTROUTING -s $IP_ -d ! 10.0.0.0/8 -j MASQUERADE
iptables -t nat -D POSTROUTING -s $IP_ -j SNAT --to-source $NEW_IP
iptables -t nat -D POSTROUTING -d $NEW_IP -s 10.0.0.0/8 -j SNAT --to-source $IP_
else
# ДЛЯ ТАРИФОВ БЕЗ РЕАЛЬНИКА
iptables -D FORWARD -s $IP_ ! -d 10.0.0.0/8 -j QUEUE
iptables -D FORWARD -d $IP_ ! -s 10.0.0.0/8 -j QUEUE
iptables -t nat -D POSTROUTING -s $IP_ -d ! 10.0.0.0/8 -j MASQUERADE
iptables -D FORWARD -s $IP_ -d x.x.x.x/x -j QUEUE
iptables -D FORWARD -d $IP_ -s x.x.x.x/x -j QUEUE
iptables -t nat -D POSTROUTING -s $IP_ -d x.x.x.x/x -j MASQUERADE
iptables -D FORWARD -s $IP_ -d x.x.x.x -j QUEUE
iptables -D FORWARD -d $IP_ -s x.x.x.x -j QUEUE
iptables -t nat -D POSTROUTING -s $IP_ -d x.x.x.x -j MASQUERADE
iptables -D FORWARD -s x.x.x.x -d $IP_ -j DROP
iptables -D FORWARD -d x.x.x.x -s $IP_ -j DROP
fi

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

    Нет пользователей, просматривающих эту страницу.


×
×
  • Создать...