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

stg-2.407-p1

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

Внезапно, ровно через месяц после релиза, вышло исправление: stg-2.407-p1.

Исправлена критическая ошибка, приводящая к зацикливаню при отправке сообщения с повторами. Ошибка была найдена и исправлена благодаря Неизвестному Админу Неизвестной Сети который ее обнаружил и любезно предоставил мне shell.

Так же исправлена историческая опечатка при журналировании: теперь вместо "alredy" пишется "already". Историческая - потому что тянется еще с первых версий и я ее уже однажды исправлял :). Так что если у вас на этот keyword завязаны какие-нибуть анализаторы логов - обратите внимание.

 

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

stg-2.407-p1.tar.gz

Поделиться сообщением


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

похоже эта проблема (с отправкой сообщений) давно уже живет.

у меня раньше в OnConnect - была отправка сообщений пользователям, то частенько были проблемы с зависанием авторизатора. убрал отправку - проблемы пропали.

ща обновлюсь - и попробую опять отправку сообщений

Поделиться сообщением


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

А, я вообще перестал отправлять сообщения своим абонентам.

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

Поделиться сообщением


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

А, я вообще перестал отправлять сообщения своим абонентам.

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

:)

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

а по ОнКоннект отправляю специально отформатированное сообщение, которое и обрабатывает авторизатор

Поделиться сообщением


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

Итак пробую новую версию.

1. Пробую собрать:

./build
make install-bin

2. Запускаю

root@stg:/install/stg_2.4.07_p1/stg-2.407-p1/projects# stargazer /etc/stargazer/
    eventloop.cpp > 08:27:20 > EVENT_LOOP::Runner - Before start
    eventloop.cpp > 08:27:20 > EVENT_LOOP::Runner - Sleeping until new actions arrived
         main.cpp > 08:27:20 > Module: /usr/lib/stg/mod_auth_ao.so
         main.cpp > 08:27:20 > Module: /usr/lib/stg/mod_auth_ia.so
         main.cpp > 08:27:20 > Module: /usr/lib/stg/mod_conf_sg.so
         main.cpp > 08:27:20 > Module: /usr/lib/stg/mod_cap_ether.so
         main.cpp > 08:27:20 > Module: /usr/lib/stg/mod_ping.so
plugin_runner.cpp > 08:27:20 > PLUGIN_LOADER::Load() - Error loading plugin '/usr/lib/stg/mod_auth_ao.so': '/usr/lib/stg/mod_auth_ao.so: undefined symbol: _ZN5USERS12DelFromIPIdxEj'
         main.cpp > 08:27:20 > Unloading module '/usr/lib/stg/mod_auth_ao.so'
         main.cpp > 08:27:20 > Unloading module '/usr/lib/stg/mod_auth_ia.so'
         main.cpp > 08:27:20 > Unloading module '/usr/lib/stg/mod_conf_sg.so'
         main.cpp > 08:27:20 > Unloading module '/usr/lib/stg/mod_cap_ether.so'
         main.cpp > 08:27:20 > Unloading module '/usr/lib/stg/mod_ping.so'
   users_impl.cpp > 08:27:20 > USERS::Stop()
         main.cpp > 08:27:21 > KillExecuters pid=18873
    stg_timer.cpp > 08:27:21 > STG_TIMER stopped
 store_loader.cpp > 08:27:21 > STORE_LOADER::Unload()

3. Пересобираю еще раз. И еще раз ставлю. Запустился нормально.НО. Вот лог запуска.

2011-05-23 08:27:21 -- ---------------------------------------------
2011-05-23 08:28:51 -- Stg v. 2.407-p1
2011-05-23 08:28:51 -- Message queue created successfully. msgKey=5555 msgID=294912
2011-05-23 08:28:51 -- Timer thread started successfully.
2011-05-23 08:28:51 -- Storage plugin: file_store v.1.04. Loading successfull.
2011-05-23 08:29:26 -- Users started successfully.
2011-05-23 08:29:26 -- Traffcounter started successfully.
2011-05-23 08:29:26 -- Module: 'Ether_cap v.1.2'. Start successfull.
2011-05-23 08:29:26 -- Module: 'InetAccess authorization plugin v.1.4'. Start successfull.
2011-05-23 08:31:47 -- Module: 'Always Online authorizator v.1.0'. Start successfull.
2011-05-23 08:31:49 -- Module: 'Pinger v.1.01'. Start successfull.
2011-05-23 08:31:49 -- Module: 'Stg configurator v.0.08'. Start successfull.
2011-05-23 08:31:49 -- Stg started successfully.
2011-05-23 08:31:49 -- +++++++++++++++++++++++++++++++++++++++++++++

Посмотрите на время между

2011-05-23 08:29:26 -- Module: 'InetAccess authorization plugin v.1.4'. Start successfull.
2011-05-23 08:31:47 -- Module: 'Always Online authorizator v.1.0'. Start successfull.

Чуть больше 2-х минут.

4. Система :

root@stg:/var/log# uname -a
Linux stg 2.6.32-31-generic #61-Ubuntu SMP Fri Apr 8 18:25:51 UTC 2011 x86_64 GNU/Linux

5. Конфигуратор запустился сразу. А вот клиенты начали подключаться спустя минут 5.

6. Жду.

Поделиться сообщением


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

Итак пробую новую версию.

1. Пробую собрать:

./build
make install-bin

2. Запускаю

root@stg:/install/stg_2.4.07_p1/stg-2.407-p1/projects# stargazer /etc/stargazer/
    eventloop.cpp > 08:27:20 > EVENT_LOOP::Runner - Before start
    eventloop.cpp > 08:27:20 > EVENT_LOOP::Runner - Sleeping until new actions arrived
         main.cpp > 08:27:20 > Module: /usr/lib/stg/mod_auth_ao.so
         main.cpp > 08:27:20 > Module: /usr/lib/stg/mod_auth_ia.so
         main.cpp > 08:27:20 > Module: /usr/lib/stg/mod_conf_sg.so
         main.cpp > 08:27:20 > Module: /usr/lib/stg/mod_cap_ether.so
         main.cpp > 08:27:20 > Module: /usr/lib/stg/mod_ping.so
plugin_runner.cpp > 08:27:20 > PLUGIN_LOADER::Load() - Error loading plugin '/usr/lib/stg/mod_auth_ao.so': '/usr/lib/stg/mod_auth_ao.so: undefined symbol: _ZN5USERS12DelFromIPIdxEj'
         main.cpp > 08:27:20 > Unloading module '/usr/lib/stg/mod_auth_ao.so'
         main.cpp > 08:27:20 > Unloading module '/usr/lib/stg/mod_auth_ia.so'
         main.cpp > 08:27:20 > Unloading module '/usr/lib/stg/mod_conf_sg.so'
         main.cpp > 08:27:20 > Unloading module '/usr/lib/stg/mod_cap_ether.so'
         main.cpp > 08:27:20 > Unloading module '/usr/lib/stg/mod_ping.so'
   users_impl.cpp > 08:27:20 > USERS::Stop()
         main.cpp > 08:27:21 > KillExecuters pid=18873
    stg_timer.cpp > 08:27:21 > STG_TIMER stopped
 store_loader.cpp > 08:27:21 > STORE_LOADER::Unload()

Было бы неплохо глянуть лог сборки.

 

3. Пересобираю еще раз. И еще раз ставлю. Запустился нормально.НО. Вот лог запуска.

2011-05-23 08:27:21 -- ---------------------------------------------
2011-05-23 08:28:51 -- Stg v. 2.407-p1
2011-05-23 08:28:51 -- Message queue created successfully. msgKey=5555 msgID=294912
2011-05-23 08:28:51 -- Timer thread started successfully.
2011-05-23 08:28:51 -- Storage plugin: file_store v.1.04. Loading successfull.
2011-05-23 08:29:26 -- Users started successfully.
2011-05-23 08:29:26 -- Traffcounter started successfully.
2011-05-23 08:29:26 -- Module: 'Ether_cap v.1.2'. Start successfull.
2011-05-23 08:29:26 -- Module: 'InetAccess authorization plugin v.1.4'. Start successfull.
2011-05-23 08:31:47 -- Module: 'Always Online authorizator v.1.0'. Start successfull.
2011-05-23 08:31:49 -- Module: 'Pinger v.1.01'. Start successfull.
2011-05-23 08:31:49 -- Module: 'Stg configurator v.0.08'. Start successfull.
2011-05-23 08:31:49 -- Stg started successfully.
2011-05-23 08:31:49 -- +++++++++++++++++++++++++++++++++++++++++++++

Посмотрите на время между

2011-05-23 08:29:26 -- Module: 'InetAccess authorization plugin v.1.4'. Start successfull.
2011-05-23 08:31:47 -- Module: 'Always Online authorizator v.1.0'. Start successfull.

Чуть больше 2-х минут.

А можно в момент этого 2-минутного простоя выполнить следующие комманды:

# gdb /usr/sbin/stargazer
(gdb) attach <pid-of-stargazer>
(gdb) thread apply all bt
(gdb) quit

и показать что оно напишет? Лучше всего в отладочном режиме и вместо make install-bin раскидать файлы руками.

 

4. Система :

root@stg:/var/log# uname -a
Linux stg 2.6.32-31-generic #61-Ubuntu SMP Fri Apr 8 18:25:51 UTC 2011 x86_64 GNU/Linux

5. Конфигуратор запустился сразу. А вот клиенты начали подключаться спустя минут 5.

А что происходило при попытке подключения в течении этих пяти минут?

Поделиться сообщением


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

Собирал без лога. Но такой вопрос - может дело в этом ? :

Я сначала скачал, сделал билд. А через несколько дней только кильнул СТГ и сделал инсталл-бин. ?

Перезапуск сервера был.

Второй раз снова кильнул стг. Снова билд. и маке инсталл-бин. Все запустилось.

Могло из-за этого не пойти сразу ?

А можно в момент этого 2-минутного простоя выполнить следующие комманды:

К сожалению нет. Запустил в обычном режиме на рабочем сервере.

600 онлайна. Играть с перезапуском небезопастно для здоровья (:

А что происходило при попытке подключения в течении этих пяти минут?

Ничего - просто авторизатор красный. Подключиться - тишина и кнопка снова активна. Минут через 5 подключился.

 

Когда первый раз ставил последний релиз продержался с 8 утра и до 6 вечера.

Потом упал. Перезапуск. Час поработал и снова упал.

Я тогда откатил на старый.

Посмотрим как поведет себя сейчас.

Если упадет (не дай Бог ), то попробую запустить в дебаге.

Поделиться сообщением


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

Собирал без лога. Но такой вопрос - может дело в этом ? :

Я сначала скачал, сделал билд. А через несколько дней только кильнул СТГ и сделал инсталл-бин. ?

Перезапуск сервера был.

Второй раз снова кильнул стг. Снова билд. и маке инсталл-бин. Все запустилось.

Могло из-за этого не пойти сразу ?

...

Нет. Либо по какой-то причине не до конца собралось, либо, опять-же, по неизвестной причине не до конца поставилось.

Поделиться сообщением


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

К стати,

Итак пробую новую версию.

1. Пробую собрать:

./build
make install-bin

2. Запускаю

root@stg:/install/stg_2.4.07_p1/stg-2.407-p1/projects# stargazer /etc/stargazer/
    eventloop.cpp > 08:27:20 > EVENT_LOOP::Runner - Before start
    eventloop.cpp > 08:27:20 > EVENT_LOOP::Runner - Sleeping until new actions arrived
         main.cpp > 08:27:20 > Module: /usr/lib/stg/mod_auth_ao.so
         main.cpp > 08:27:20 > Module: /usr/lib/stg/mod_auth_ia.so
         main.cpp > 08:27:20 > Module: /usr/lib/stg/mod_conf_sg.so
         main.cpp > 08:27:20 > Module: /usr/lib/stg/mod_cap_ether.so
         main.cpp > 08:27:20 > Module: /usr/lib/stg/mod_ping.so
plugin_runner.cpp > 08:27:20 > PLUGIN_LOADER::Load() - Error loading plugin '/usr/lib/stg/mod_auth_ao.so': '/usr/lib/stg/mod_auth_ao.so: undefined symbol: _ZN5USERS12DelFromIPIdxEj'
         main.cpp > 08:27:20 > Unloading module '/usr/lib/stg/mod_auth_ao.so'
         main.cpp > 08:27:20 > Unloading module '/usr/lib/stg/mod_auth_ia.so'
         main.cpp > 08:27:20 > Unloading module '/usr/lib/stg/mod_conf_sg.so'
         main.cpp > 08:27:20 > Unloading module '/usr/lib/stg/mod_cap_ether.so'
         main.cpp > 08:27:20 > Unloading module '/usr/lib/stg/mod_ping.so'
   users_impl.cpp > 08:27:20 > USERS::Stop()
         main.cpp > 08:27:21 > KillExecuters pid=18873
    stg_timer.cpp > 08:27:21 > STG_TIMER stopped
 store_loader.cpp > 08:27:21 > STORE_LOADER::Unload()

...

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

 

И еще. Есть ли какие-либо новости по багу с авторизацией? Все ли работает нормально?

Поделиться сообщением


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

Сорри. Немного был занят.

Новый СТГ (а новый ли ? После этого поста уже сомневаюсь (: ) работает без нареканий.

В логах - все та же задержка на 1-2 минуты.

Но работает до сих пор без сбоев. СТГ ребутается по крону в 5.30 утра.

Визуально ключи подключаются быстрее, и быстрее приходят сообщения. Можно попробовать убрать слипы в скриптах ?

Поделиться сообщением


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

Сорри. Немного был занят.

Новый СТГ (а новый ли ? После этого поста уже сомневаюсь (: ) работает без нареканий.

В логах - все та же задержка на 1-2 минуты.

Но работает до сих пор без сбоев. СТГ ребутается по крону в 5.30 утра.

Визуально ключи подключаются быстрее, и быстрее приходят сообщения. Можно попробовать убрать слипы в скриптах ?

nightfly у себя в скриптах убрал - говорит, все в порядке.

Значит закрываю баг. Осталось разобраться с задержкой...

Поделиться сообщением


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

...

Но работает до сих пор без сбоев. СТГ ребутается по крону в 5.30 утра.

...

К стати, а зачем?

Поделиться сообщением


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

В инит скрипте СТГ у меня вот так :

do_start()
{
       # Return
       #   0 if daemon has been started
       #   1 if daemon was already running
       #   2 if daemon could not be started
       start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
               || return 1

       # ps x | grep $DAEMON | grep -v grep | cut -f1 -d" " > $PIDFILE
               /etc/stargazer/scripts/dhcp.sh
               /etc/stargazer/scripts/arp.sh
               /etc/stargazer/firewall.sh start
               /etc/stargazer/ifb.sh start
               /etc/stargazer/add_manual.sh
               /etc/stargazer/scripts/check_stg_bak_files.sh
               /install/sysctl.sh
       start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
               $DAEMON_ARGS \
               || return 2
}

/etc/stargazer/scripts/dhcp.sh - запускается выборка из файлов и формируется база маков, после чего служба рестартуется.

/etc/stargazer/scripts/arp.sh - формируется арп-таблица

/etc/stargazer/firewall.sh start - очистка и установка дефолтного фаера

/etc/stargazer/ifb.sh start - сброс и установка шейперов

/etc/stargazer/add_manual.sh - дополнительные настройки фаера

/etc/stargazer/scripts/check_stg_bak_files.sh - проверяем битые файлы

/install/sysctl.sh - сбрасываем корректировки для ядра

и только потом стартуем СТГ

Почему каждый день рестарт ?

Ну у нас специфический шейпер - он запускается 1 раз и сразу для все юзеров.

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

Утром все стартует по новой , но уже такие юзеры идут в 1 скорости.

И раньше стг бывало падал, поэтому утром контрольный запуск.

Сейчас вроде падений нет, а шейпера еще не переделали.

Поделиться сообщением


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

А, вот еще. Каждый день бекапится биллинг :

15 4    * * *   root    /usr/bin/rsync -rltD --delete-after /etc/ 192.168.хх.хх:/mnt/HD_a2/server1_backup/etc
25 4    * * *   root    /usr/bin/rsync -rltD --delete-after /var/stargazer 192.168.хх.хх:/mnt/HD_a2/server1_backup/var

И после такого иногда падает СТГ (пару раз всего правда было, может первые полные когда были).

Рестарт какбэ страхует однозначный запуск.

Поделиться сообщением


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

Костыли и подпорки :)

Поделиться сообщением


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

Костыли и подпорки :)

Работает пока без глюков. Пусть будут костыли. Куда ж без них (:

Поделиться сообщением


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

...

/etc/stargazer/scripts/check_stg_bak_files.sh - проверяем битые файлы

/install/sysctl.sh - сбрасываем корректировки для ядра

...

Можно убрать. В 2.407 bak-файлов уже нет.

Поделиться сообщением


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

Можно убрать. В 2.407 bak-файлов уже нет.

Спасибо убрал. СТГ пока работает без збоев.

Поделиться сообщением


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

...

/etc/stargazer/scripts/check_stg_bak_files.sh - проверяем битые файлы

/install/sysctl.sh - сбрасываем корректировки для ядра

...

Можно убрать. В 2.407 bak-файлов уже нет.

Можно узнать почему убрали bak-файлы?

Как-то стрёмно без них. :)

Поделиться сообщением


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

tar + rsync (а еще лучше mysqldump+rsync) продолжают спасать отцов русской демократии (С)

Поделиться сообщением


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

...

/etc/stargazer/scripts/check_stg_bak_files.sh - проверяем битые файлы

/install/sysctl.sh - сбрасываем корректировки для ядра

...

Можно убрать. В 2.407 bak-файлов уже нет.

Можно узнать почему убрали bak-файлы?

Как-то стрёмно без них. :)

Все просто. Раньше работало так:

  • бекапим старый файл;
  • пишем данные;
  • удаляем бекап.

Теперь работает так:

  • пишем в новый файл;
  • переименовываем в старый.

Операция переименования атомарна с т.з. файловой системы. bak-файлам места не осталось ;)

Поделиться сообщением


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

tar + rsync (а еще лучше mysqldump+rsync) продолжают спасать отцов русской демократии (С)

А еще лучше pg_dump и потоковая репликация :)

Поделиться сообщением


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

ага, и много развеселых интимных отношений с вакумом :)

Поделиться сообщением


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

ага, и много развеселых интимных отношений с вакумом :)

Что? VACUUM?

Начиная с версии 8.0 (смею напомнить, что текущая версия - 9.1) существует такая штука как AutoVacuum, включенная по умолчанию и очень гибко настраиваемая.

Единственно что пришлось дополнить внешними скриптами - это ANALYZE по крону для таблиц tb_detail_stats и tb_sessions_log/tb_sessions_data. Т.к. они write-only то AutoVacuum не выполняет для них ANALYZE и со временем статистика для планировщика запросов будет ухудшаться.

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

 

Вообще говоря, из трех СУБД (Firebird, MySQL и PostgreSQL) с которыми мне приходилось (и приходится) тесно работать PostgreSQL самый простой, прямой и очевидный.

Поделиться сообщением


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

Oo

Поделиться сообщением


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

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

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

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

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

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

Войти

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

Войти сейчас

  • Сейчас на странице   0 пользователей

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

×