yKpon 8 Опубліковано: 2011-04-02 09:40:16 Share Опубліковано: 2011-04-02 09:40:16 вот самое начало месяца 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'shmel': 'tariff' parameter changed from 'lightU2' to 'fullU1'. 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'lerm2': 'tariff' parameter changed from 'lightU0' to 'lightU2'. 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'boroda': 'tariff' parameter changed from 'vipU4000' to 'lightU3'. 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'ali': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'wws': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'vpntest': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'vpnroot': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'vpnboroda': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'vov4ik': 'freeMb' parameter changed from '50.000000' to '50.000000'. Prepaid traffic 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'trener': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'test': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'tarasss': 'freeMb' parameter changed from '50.000000' to '50.000000'. Prepaid traffic 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'stulov': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'stepa': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'solariz': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:03:28 -- Admin '@stargazer', 0.0.0.0: User 'shmel': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:03:28 -- Admin '@stargazer', 0.0.0.0: User 'sergey': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:03:28 -- Admin '@stargazer', 0.0.0.0: User 'serega': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:03:28 -- purestg2: User qwest (socket=15) is disconnected. 2011-04-01 00:03:28 -- Broken pipe! ниже логи я уже привёл с 00:03:29 по 00:03:33 биллинг отработал начисление абонплаты как то подозрительно он замер на 3:28 минуты как будет запланировано включу дебаг orlova_ya до сих пор в онлайне Ссылка на сообщение Поделиться на других сайтах
Alexey Osipov 38 Опубліковано: 2011-04-02 16:32:33 Автор Share Опубліковано: 2011-04-02 16:32:33 вот самое начало месяца 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'stepa': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'solariz': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:03:28 -- Admin '@stargazer', 0.0.0.0: User 'shmel': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:03:28 -- Admin '@stargazer', 0.0.0.0: User 'sergey': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:03:28 -- Admin '@stargazer', 0.0.0.0: User 'serega': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:03:28 -- purestg2: User qwest (socket=15) is disconnected. 2011-04-01 00:03:28 -- Broken pipe! ниже логи я уже привёл с 00:03:29 по 00:03:33 биллинг отработал начисление абонплаты как то подозрительно он замер на 3:28 минуты Да, проблема кроется где-то в этом замирании. Madf, как думаешь, чем может быть вызвана такая задержка? Такое ощущение, что stargazer просто повис на некоторое время, не отвечая ни на чьи запросы, в том числе и на purestg2, вот он и начал отключать пользователей по таймауту. Другое дело, это не объясняет, почему именно orlova_ya осталась онлайн, а остальные нет? Возможно, именно так, с "замиранием" происходят "залипания авторизации", о которых говорил madf. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2011-04-04 09:21:23 Share Опубліковано: 2011-04-04 09:21:23 ... Теперь моя гипотеза: Пока старгейзер занят обработкой события "новый месяц" (сброс трафика, снятие абонки и прочее), он держит какую-то блокировку (mutex), которая нужна purestg2 для ответа на запросы от pppd/pptp. Авторизатор purestg2 крутится в отдельном потоке и использует для своей работы следующие функции: USERS::FindByName() USER::GetAuthorized() USER::IsAuthorizedBy() USER::Unauthorize() USER::Authorize() USER::IsInetable() а также доступ к некоторым свойствам USER::property. madf, что ты думаешь об этом? ... USERS::FindByName() - блокирующая; USER::GetAuthorized() - не блокирующая; USER::IsAuthorizedBy() - блокирующая; USER::Unauthorize() - блокирующая; USER::Authorize() - блокирующая; USER::IsInetable() - не блокирующая. USER::property при доступе блокируется только на очень короткий срок - они не связанны с мьютексом класса USER. В целом - вполне вероятно. Отладочный лог покажет что происходит в этот момент. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2011-04-04 09:27:14 Share Опубліковано: 2011-04-04 09:27:14 вот самое начало месяца 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'stepa': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:00:00 -- Admin '@stargazer', 0.0.0.0: User 'solariz': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:03:28 -- Admin '@stargazer', 0.0.0.0: User 'shmel': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:03:28 -- Admin '@stargazer', 0.0.0.0: User 'sergey': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:03:28 -- Admin '@stargazer', 0.0.0.0: User 'serega': 'freeMb' parameter changed from '0.000000' to '0.000000'. Prepaid traffic 2011-04-01 00:03:28 -- purestg2: User qwest (socket=15) is disconnected. 2011-04-01 00:03:28 -- Broken pipe! ниже логи я уже привёл с 00:03:29 по 00:03:33 биллинг отработал начисление абонплаты как то подозрительно он замер на 3:28 минуты Да, проблема кроется где-то в этом замирании. Madf, как думаешь, чем может быть вызвана такая задержка? Такое ощущение, что stargazer просто повис на некоторое время, не отвечая ни на чьи запросы, в том числе и на purestg2, вот он и начал отключать пользователей по таймауту. Другое дело, это не объясняет, почему именно orlova_ya осталась онлайн, а остальные нет? Возможно, именно так, с "замиранием" происходят "залипания авторизации", о которых говорил madf. Действительно странно. Было бы интересно в момент замирания получить трассу стеков, жаль момент упущен. "Залипания" у нас происходили не на границе месяца а при смене IP. Не думаю что с этим связанно. Хотя всякое может быть, я пока так и не нашел откуда такая проблема вылазит. Сейчас посмотрю что еще может происходить при пересечении границы месяца такого что может затормозить начисление предоплаченного трафика. Заодно подниму свои логи, поищу похожие эффекты. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2011-04-04 11:40:28 Share Опубліковано: 2011-04-04 11:40:28 Поднял логи за последний переход между месяцами - ни на одном из трех серверов задержек не обнаружил. Ссылка на сообщение Поделиться на других сайтах
Alexey Osipov 38 Опубліковано: 2011-04-11 19:21:18 Автор Share Опубліковано: 2011-04-11 19:21:18 Итак. Готовится релиз purestg 2.2 с кодовым названием "Proper disconnects"/"Правильное отключение" Новое: Если пользователя отключил старгейзер (кончились деньги или ещё что-то), то плагин тут же разрывает pppd соединение. Раньше это происходило через keepalivetimeout секунд. "Сторожевые таймеры" для пользователей. Если для какого-то пользователя вовремя не пришел PING пакет от pppd, то пользователь насильно отключается. Должно помочь в случае непредвиденного зависания онлайна как у товарища yKponа. Корректная отработка ситуации, если pppd упал или завершился по SIGKILL. Изменения уже в git. Релиз планируется сразу после выпуска Stargazer-2.407-rc3. Ссылка на сообщение Поделиться на других сайтах
yKpon 8 Опубліковано: 2011-04-13 04:56:59 Share Опубліковано: 2011-04-13 04:56:59 под rc3 purestg2-2.1 не собирается, сначало ругается на отсутствие некоторых хеадеров, stg_common.h и stg_logger.h взял из rc2, помогло, но в итоге заткнулся на base_auth.h, он не подходит Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2011-04-13 07:56:17 Share Опубліковано: 2011-04-13 07:56:17 под rc3 purestg2-2.1 не собирается, сначало ругается на отсутствие некоторых хеадеров, stg_common.h и stg_logger.h взял из rc2, помогло, но в итоге заткнулся на base_auth.h, он не подходит На отсутствие каких хидеров ругается? Ссылка на сообщение Поделиться на других сайтах
yKpon 8 Опубліковано: 2011-04-13 07:59:54 Share Опубліковано: 2011-04-13 07:59:54 На отсутствие каких хидеров ругается? stg_common.h stg_logger.h base_auth.h дальше пройти не смог Ссылка на сообщение Поделиться на других сайтах
Alexey Osipov 38 Опубліковано: 2011-04-13 14:17:31 Автор Share Опубліковано: 2011-04-13 14:17:31 Согласно анонсу выпущен purestg 2.2: http://code.google.com/p/purestg2/downloads/detail?name=purestg2-2.2.tar.gz Эта версия совместима с Stargazer-2.407-rc3. Начиная с rc3, если вы устанавливаете Stargazer в систему методом `make install`, все заголовочные файлы старгейзера, необходимые для сборки purestg2, автоматически устанавливаются в /usr/include/stg. Поэтому команда для сборки purestg2 теперь выглядит просто: $ ./configure --prefix=/usr $ make # make install --prefix разумеется можно исправить по собственному желанию. Старый способ с использованием --with-stg-headers также поддерживается. Нововведения перечислены несколькими сообщениями выше. Ссылка на сообщение Поделиться на других сайтах
yKpon 8 Опубліковано: 2011-04-14 10:32:42 Share Опубліковано: 2011-04-14 10:32:42 Alexey Osipov, спасибо за релиз! запустил в дебаге буду следить Ссылка на сообщение Поделиться на других сайтах
yKpon 8 Опубліковано: 2011-04-27 12:50:23 Share Опубліковано: 2011-04-27 12:50:23 заметил вот такую вещь, предполагаю это как то связано с предыдущими моими постами: юзерский впн подключен, через конфигуратор делаем баланс отрицательный впн отваливается, делаем кредит больше минуса и впн по прежнему отключен, статус абонента становится Online, но через несколько десятков секунд успешно отключается, отключается думаю как раз по проверке статуса в последней версии purestg Ссылка на сообщение Поделиться на других сайтах
Alexey Osipov 38 Опубліковано: 2011-04-27 13:40:45 Автор Share Опубліковано: 2011-04-27 13:40:45 заметил вот такую вещь... А логи? Причем и от pppd, и от Stargazer. Ссылка на сообщение Поделиться на других сайтах
yKpon 8 Опубліковано: 2011-04-27 16:59:41 Share Опубліковано: 2011-04-27 16:59:41 вероятно я ошибся Ссылка на сообщение Поделиться на других сайтах
Alexey Osipov 38 Опубліковано: 2011-04-28 04:39:49 Автор Share Опубліковано: 2011-04-28 04:39:49 вероятно я ошибся А может нет? Ссылка на сообщение Поделиться на других сайтах
yKpon 8 Опубліковано: 2011-05-03 05:25:37 Share Опубліковано: 2011-05-03 05:25:37 Алексей подскажи что означает purestg2: ERROR: checkUserTimeouts failed? сыпется каждую секунду в логи стг, а то собрал машинку для тестов Ссылка на сообщение Поделиться на других сайтах
Alexey Osipov 38 Опубліковано: 2011-05-03 13:43:32 Автор Share Опубліковано: 2011-05-03 13:43:32 Алексей подскажи что означает purestg2: ERROR: checkUserTimeouts failed? сыпется каждую секунду в логи стг, а то собрал машинку для тестов Если при этом больше ошибок нет, то это детская опечтка у меня в коде. В git поправил. Патч: diff --git a/stargazer/purestg2.cpp b/stargazer/purestg2.cpp index cd760f6..71bc0f7 100644 --- a/stargazer/purestg2.cpp +++ b/stargazer/purestg2.cpp @@ -958,6 +958,8 @@ int AUTH_PURESTG2::checkUserTimeouts() WriteServLog("purestg2: BUG: Can't find socket for user \"%s\"", user->GetLogin().c_str()); } } + + return 0; } //----------------------------------------------------------------------------- int AUTH_PURESTG2::checkStgDisconnects() Ссылка на сообщение Поделиться на других сайтах
yKpon 8 Опубліковано: 2011-05-08 10:23:40 Share Опубліковано: 2011-05-08 10:23:40 заметил не всегда происходит запись ipparamsave Ссылка на сообщение Поделиться на других сайтах
Alexey Osipov 38 Опубліковано: 2011-05-08 13:29:13 Автор Share Опубліковано: 2011-05-08 13:29:13 заметил не всегда происходит запись ipparamsave В каких случаях не происходит? Хотелось бы увидеть соответствующие отладочные (опция debug) логи pppd и stg при таких случаях. Ссылка на сообщение Поделиться на других сайтах
yKpon 8 Опубліковано: 2011-05-08 14:49:48 Share Опубліковано: 2011-05-08 14:49:48 stg работает не в дебаге, так что в логах инфы по существу никакой, заметил вот что опишу подробно: юзер цепляется и через некоторое время отклчюается, открываю конфигуратор, смотрим карточку клиента, там опция ipparamsave успешно отображена цепляемся к базе напрямую (у меня HeidiSQL), а там это поле пустое... добавляю в учётку ещё один адрес с которого можно цепляться, цепляюсь успешно, отключаюсь, опять смотрю базу а там ip адрес от предыдущего коннекта как будто стг забывает записать в базу и держит в себе, а потом путает Ссылка на сообщение Поделиться на других сайтах
Alexey Osipov 38 Опубліковано: 2011-05-08 16:06:32 Автор Share Опубліковано: 2011-05-08 16:06:32 stg работает не в дебаге, так что в логах инфы по существу никакой, stg может работать и не в дебаге. Нужно только, чтобы в настройках модуля purestg2 присутствовал параметр debug (без значения, просто одно слово - debug). заметил вот что опишу подробно: юзер цепляется и через некоторое время отклчюается, открываю конфигуратор, смотрим карточку клиента, там опция ipparamsave успешно отображена цепляемся к базе напрямую (у меня HeidiSQL), а там это поле пустое... Очевидно старгейзер не сразу скидывает данные в базу. А что это за база такая? Не видел её среди поддерживаемых в stg. Ссылка на сообщение Поделиться на других сайтах
Citadel 5 Опубліковано: 2011-05-08 16:40:52 Share Опубліковано: 2011-05-08 16:40:52 yKpon немного ошибся. Это фронтэнд к mysql, а не субд. Так что можно считать, что у него mysql. Ссылка на сообщение Поделиться на других сайтах
yKpon 8 Опубліковано: 2011-05-10 06:22:47 Share Опубліковано: 2011-05-10 06:22:47 А что это за база такая? Не видел её среди поддерживаемых в stg. HeidiSQL - это виндовый GUI клиент к MySQL Очевидно старгейзер не сразу скидывает данные в базу. почему тогда он скидывает адрес предыдущего соединения? секция purestg сейчас работает без дебага, так что до следующего запуска ждём Ссылка на сообщение Поделиться на других сайтах
Alexey Osipov 38 Опубліковано: 2011-05-10 06:54:29 Автор Share Опубліковано: 2011-05-10 06:54:29 Очевидно старгейзер не сразу скидывает данные в базу. почему тогда он скидывает адрес предыдущего соединения? Посмотрел по исходному коду старгейзера. Конфиг пользователей скидывается в базу только в следующих случаях: 1) При истечении срока действия кредита (user_impl.cpp:1089). 2) При изменении тарифа пользователя (user_impl.cpp:615). 3) При добавлении нового пользователя (users_impl.cpp:169). 4) При остановке старгейзера (users_impl.cpp:503). 5) При изменении данных пользователя через конфигуратор. Тогда получается, что адрес предыдущего соединения был вписан в базу в тот момент, когда ты "добавил в учётку ещё один адрес с которого можно цепляться" (подпадает под пункт 5). секция purestg сейчас работает без дебага, так что до следующего запуска ждём Угу. Но теперь кажется понятно, почему так происходит. Ссылка на сообщение Поделиться на других сайтах
yKpon 8 Опубліковано: 2011-05-10 06:57:56 Share Опубліковано: 2011-05-10 06:57:56 Тогда получается, что адрес предыдущего соединения был вписан в базу в тот момент, когда ты "добавил в учётку ещё один адрес с которого можно цепляться" (подпадает под пункт 5). да действительно, перезапись произходит при изменении любого параметра но если подумать, изменение userdata3 (в моём случае) это и есть изменение одного из параметров, но скорее всего дело в том что меняет не конфигуратор Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас