-
Всього повідомлень
4 122 -
Приєднався
-
Останній візит
-
Дней в лидерах
22
Тип контенту
Профили
Форум
Календарь
Все, що було написано madf
-
Очень прошу отписываться здесь о результатах тестирования, впечатлениях и замечаниях. Мне очень важно успеть до 20-го числа подготовить релиз (как это ни странно, но от этого зависит моя з/п в этом месяце и будет очень неприятно видеть в нем тривиальные ошибки.
-
На отсутствие каких хидеров ругается?
-
Ссылка для скачивания: stg-2.407-rc3.tar.gz ChangeLog: General: В init.d-скрипт для Gentoo добавлено явное указание PID-файла. Исправлена синтаксическая ошибка в примере скрипта OnDisconnect для реализации связки шейпера, VPN и FreeRADIUS (спасибо Алексею Осипову за патч). В каталоге conf-enabled.d симлинки теперь ссылаются по относительному пути (спасибо Алексею Осипову за патч). Конфигурационные файлы переведены на английский язык. В примеры скриптов добавлен шабанг. Compilation: При создании каталогов в процессе установки для них теперь вместо переменной BIN_MODE используется переменная DIR_MODE с правами на каталог. Добавлены проверки наличия компилятора в системе. При построении зависимостей больше не используется флаг -MG. Libraries: В библиотеке dotconfpp убрана глобальная зависимость от заголовочного файла mempool.h. Теперь для использования этой библиотеки этот заголовочный файл не требуется. Удалены неиспользуемые библиотеки hostallow и common_settings. Из названий некоторых библиотек убран префикс stg. В библиотеке dotconfpp исправлен механизм сообщения об ошибках. В библиотеке common исправлена ошибка в функции Encode12 которая приводила к неполному кодированию данных если в них встречаются нулевые байты. Plugins: Убрана лишняя зависимость у плагина для MySQL. В плагине файлового хранилища добавлен расширенный формат помесячной статистики (включены все поля из обычной статистики). Классический формат оставлен для совместимости. В плагине XML-RPC API исправлено название поля (disabledetailstat -> disableddetailstat). В плагине XML-RPC API исправлено название поля (tariff -> name). В плагине XML-RPC API исправлена ошибка приводящая к невозможности удаления пользователя. Переименованы некоторые методы в XML-RPC API: tariff_change -> chg_user_tariff; send_message -> send_user_message; add_cash -> add_user_cash; set_cash -> set_user_cash. В методе info плагина XML-RPC API убрано кодирование названий полей dirNames. В плагине XML-RPC API добавлено преобразование в юникод полей note, address, email, group и массива dirNames. stargazer: Изменен механизм работы с сообщениями пользователям. Теперь Staragzer не обращается постоянно к базе за списком сообщений перед попыткой отправки, а читает их при авторизации абонента и далее поддерживает у себя в памяти актуальный список. Исправлена ошибка которая приводила к падению при попытке пользователя авторизоваться через FreeRADIUS с неправильным логином. Исправлена ошибка которая приводила к неправильной передаче параметра "id" в rscriptd. Добавлена возможность удаления из БД сообщений которые не были отправлены более указанного промежутка времени. Исправлена ошибка которая приводила к массовым отключениям в rscriptd после массовых включений. Исправлено преобразование кодировки (добавлена поддержка Украинского и Белорусского языков). Исправлена дата старта таймера в режиме отладки. Вызов localtime заменен на реэнтерабельный вызов localtime_r (устраняет потенциальные проблемы с многопоточностью). Внутренние классы разделены на "интерфейсы" (абстрактные базовые классы) и реализацию. Теперь возможна сборка плагинов out of the box (вне дерева исходников Stargazer). Из имен интерфейсных классов убран префикс BASE_. Так же переименованы заголовочные файлы с их определением. Начат процесс замены usleep на nanosleep. usleep помечена как устаревшая в POSIX.2001. Исправлена ошибка которая иногда приводила к тому что некоторые подсистемы стартовали до запуска внутреннего таймера, что могло привести к "зависанию" детальной статистики некоторых пользователей и "утечке" памяти. Добавлена возможность отслеживать состояние поля connected класса USER посредством нотификаторов. Общие заголовочные файлы перемещенны в подкаталог stg и добавлена их установка в /usr/include/stg. rscriptd: Исправлена ошибка которая могла привести к "гонкам" (race conditions). Удалено ожидание после перехода в режим дэмона. sgauth: Исправлена ошибка из-за которой авторизатор не стартовал (спасибо Алексею Осипову за патч). Исправлено чтение конфигурационного файла по умолчанию (спасибо Алексею Осипову за патч). Добавлена инициализация статистики нулями (если подключиться не удалось в таблице теперь выводятся нули вместо мусора). Исправлено значение параметра ListenWebIP по умолчанию в конфигурационном файле. sgconf: Исправлено преобразование кодировки (добавлена поддержка Украинского и Белорусского языков). Добавлен флаг -E для управления тайм-аутом кредита. Это последний релиз-кандидат, релиз ожидается до 20-го числа. Сильных изменений по сравнению с rc3 я не предполагаю, буду заниматься в основном документацией. Репозиторий с исходными кодами захостил на Gitorious: git@gitorious.org:stg/stg.git В процессе тестирования мне удалось собрать Stargazer с помощью CLang версий 2.8 и 2.9 а также gcc-4.5.2 с поддержкой LTO и Graphite. Но это для экстремалов С праздником, коллеги! stg-2.407-rc3.tar.gz Upd (патчи): stg-dir-mode-patch.diff - исправление установки sgconf; stg-includes-install-on-freebsd-patch.diff - исправление установки заголовочных файлов. stg-dir-mode-patch.diff.txt stg-includes-install-on-freebsd-patch.diff.txt
-
Проверил на текущей сборке пароль на 3 символа - не подтвердилось. Все данные перед шифрованием зануляются. Перепроверил у себя. Любопытно, мусор получается только с моим паролем и никаким другим. Пароль вышлю в ЛС. Повторяется и на MySQL и на файловой БД. Спасибо, пофиксил. Проблема была в том что Encode12 останавливалась байте со значением 0. А при шифровании он вполне мог встретиться в середине пакета данных. Так что на некоторый паролях оно валилось У меня, правда, нормально работало с твоим паролем, но valgrind страшно ругался на неинициализированные данные.
-
Ні, не чіпав. Шо я ворог собі? Це ж треба було б виправлять віндовий конфігуратор - а воно мені треба?
-
Просто берем и чистим. Из tb_sessions_data записи удалятся автоматически по внешним ключам. Т.к. системе эта информация не нужна то чистка пройдет безболезненно. То-же относится и к tb_detail_stats
-
А версия какая? И что в качестве БД используется? Stg v. 2.407-rc2, mysql, 2.6.32-5-amd64 #1 SMP Mon Mar 7 21:35:22 UTC 2011 x86_64 GNU/Linux Ключевое слово - mysql . К тому же у него самого (не у плагина а у СУБД) не очень хорошо сделан конкуррентный доступ. Хотя было-бы, конечно, неплохо получить core-файл от отладочного билда. Вдруг что-то еще?
-
А версия какая? И что в качестве БД используется?
-
А нафіга? Я ще API офіційно не публікував
-
Є! Точно! Моя вина... Перейменував наступні методи: add_cash -> add_user_cash set_cash -> set_user_cash change_tariff -> chg_user_tariff send_message -> send_user_message Шоби "бути послідовним" ©®
-
disabledetailstat -> disableddetailstat (у документації пофіксив). Немає методу 'change_tariff', є метод 'chg_tariff', і саме так описано у документації.
-
Проверил на текущей сборке пароль на 3 символа - не подтвердилось. Все данные перед шифрованием зануляются.
-
Поднял логи за последний переход между месяцами - ни на одном из трех серверов задержек не обнаружил.
-
Да, проблема кроется где-то в этом замирании. Madf, как думаешь, чем может быть вызвана такая задержка? Такое ощущение, что stargazer просто повис на некоторое время, не отвечая ни на чьи запросы, в том числе и на purestg2, вот он и начал отключать пользователей по таймауту. Другое дело, это не объясняет, почему именно orlova_ya осталась онлайн, а остальные нет? Возможно, именно так, с "замиранием" происходят "залипания авторизации", о которых говорил madf. Действительно странно. Было бы интересно в момент замирания получить трассу стеков, жаль момент упущен. "Залипания" у нас происходили не на границе месяца а при смене IP. Не думаю что с этим связанно. Хотя всякое может быть, я пока так и не нашел откуда такая проблема вылазит. Сейчас посмотрю что еще может происходить при пересечении границы месяца такого что может затормозить начисление предоплаченного трафика. Заодно подниму свои логи, поищу похожие эффекты.
-
USERS::FindByName() - блокирующая; USER::GetAuthorized() - не блокирующая; USER::IsAuthorizedBy() - блокирующая; USER::Unauthorize() - блокирующая; USER::Authorize() - блокирующая; USER::IsInetable() - не блокирующая. USER::property при доступе блокируется только на очень короткий срок - они не связанны с мьютексом класса USER. В целом - вполне вероятно. Отладочный лог покажет что происходит в этот момент.
-
Странно. Конфигуратор должен показывать, что пользователь стал оффлайн, пока включен disabled. Независимо от того, авторизован он или нет. Надо кстати уточнить у madf: что означает Online в конфигураторе: что пользователь авторизован или что пользователь подключен? ... Подключен. Странно, похоже на глюк с "залипанием" авторизации.
-
ну исходю из CREATE TABLE IF NOT EXISTS `detailstat_03_2011` ( `login` varchar(40) default '', `day` tinyint(4) default '0', `startTime` time default NULL, `endTime` time default NULL, `IP` varchar(17) default '', `dir` int(11) default '0', `down` bigint(20) default '0', `up` bigint(20) default '0', `cash` double default '0', KEY `login` (`login`), KEY `dir` (`dir`), KEY `day` (`day`), KEY `IP` (`IP`) ) ENGINE=MyISAM; похоже вроде на правду Так там же кусок файла был приложен, а не дамп БД
-
поддерживаю, насколько это осуществимо? стоит ли ждать этого в rc3? Нет, слишком много изменений. И так в rc3 половину кода перелопатил...
-
Не выбор кодировки а исключительно Unicode. Не понимаю людей которые до сих пор пользуются koi8/cp1251/cp866 и прочими пережитками прошлого.
-
Ой, чойта? Там полей меньше Формат: -> <начало_интервала> - <конец_интервала> <IP> <направление> <download> <upload> <деньги>
-
Наверное потому что совпадают ID для Message Queue. Если их сделать разными - должно работать. это как? где смотреть и менять ? в логе rscriptd вижу такое Message queue created successfully. msgKey=5555 msgID=655360 Параметр ExecMsgKey. Поставить что-то отличное от 5555.
-
Совпадает ли архитектура сервера на котором запущен Stargazer с архитектурой сервера на котором запущен rscriptd? Не используются ли Sparc/Sparc64?
-
Наверное потому что совпадают ID для Message Queue. Если их сделать разными - должно работать.
-
Нет, он целиком шлет состояние всех юзеров и потом контролирует что в нем изменилось - в этом и ценность. ... Не совсем так. Он шлет по пакету на каждое событие Connect и Disconnect и по alive-пакету на каждого подключенного пользователя. rscriptd со своей стороны по этим пакетам отслеживает состояние пользователей и выполняет необходимые скрипты. По остальным пунктам согласен - надо журнал работы отладочной версии.
