Перейти до

Новый месяц и не снялась абонплата некоторых юзеров...


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

2 месяца назад не перестала сниматься абоплата у логина shmel, помогло полное удаление и заведение юзера с нуля, проблема исчезла.

Сегодня ночью история повторилась, не снялась абонплата у одного юзера под логином alex1. В логах списание абонплаты этого юзера не произошло, только одна строчка

2010-05-01 00:00:00 -- Admin "@stargazer", 0.0.0.0: "freeMb" parameter changed from "-12.825312" to "280.000000". Prepaid traffic

у всех других присутствует строка снятия АП

2010-05-01 00:00:01 -- Admin "@stargazer", 0.0.0.0: "cash" parameter changed from "0.161793" to "-299.838207". Subscriber fee charge

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

Stg-2.406

 

посмотрел логи снатия абоплаты месяц назад, у этого логина тоже не снялась абонплата в начале марта!

конфиг тарифа проверил, 200 рублей абонка на нём, этот тариф есть у других людей, у них всё исправно

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

2 месяца назад не перестала сниматься абоплата у логина shmel, помогло полное удаление и заведение юзера с нуля, проблема исчезла.

Сегодня ночью история повторилась, не снялась абонплата у одного юзера под логином alex1. В логах списание абонплаты этого юзера не произошло, только одна строчка

2010-05-01 00:00:00 -- Admin "@stargazer", 0.0.0.0: "freeMb" parameter changed from "-12.825312" to "280.000000". Prepaid traffic

у всех других присутствует строка снятия АП

2010-05-01 00:00:01 -- Admin "@stargazer", 0.0.0.0: "cash" parameter changed from "0.161793" to "-299.838207". Subscriber fee charge

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

Stg-2.406

 

посмотрел логи снатия абоплаты месяц назад, у этого логина тоже не снялась абонплата в начале марта!

конфиг тарифа проверил, 200 рублей абонка на нём, этот тариф есть у других людей, у них всё исправно

Проверь состояние флага "заморозки".

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

Проверь состояние флага "заморозки".

Passive 0

Down 0

абонент был отключен и заморожен раньше, как раз после разморозки и включения это появилось

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

Проверь состояние флага "заморозки".

Passive 0

Down 0

абонент был отключен и заморожен раньше, как раз после разморозки и включения это появилось

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

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

У меня та же ситуация. Аналогично абонент был замороже несколько месяцев, после разморозки абонплата перестала сниматься и где-то месяцев 6. Надоело - удалил-завел заново пользователья. Эффект увижу в след. месяце.

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

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

разморозился в феврале, абонка не снялась ни за март ни за апрель

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

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

разморозился в феврале, абонка не снялась ни за март ни за апрель

Это данные из базы или непосредственно из самого Stargazer'а?

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

Это данные из базы или непосредственно из самого Stargazer'а?

из головы, помню когда размораживал :mellow:

вот этого юзера старый лог на файлах в котором видно как я вручную вычитал абонку http://skyprox.net.ru/upload/log

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

Это данные из базы или непосредственно из самого Stargazer'а?

из головы, помню когда размораживал :mellow:

вот этого юзера старый лог на файлах в котором видно как я вручную вычитал абонку http://skyprox.net.ru/upload/log

А из конфигуратора что видно?

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

А из конфигуратора что видно?

у юзера тариф с абонплатной 200 руб., не отключен и не заморожен

А патчи какие-нибуть накладывались? Или самостоятельные правки были?

void USER::ProcessDayFee()
{
STG_LOCKER lock(&mutex, __FILE__, __LINE__);

double passiveTimePart = 1.0;
if (!settings->GetFullFee())
   {
   passiveTimePart = GetPassiveTimePart();
   }
double f = tariff->GetFee() * passiveTimePart;

if (f == 0.0)
   return;

double c = cash;
printfd(__FILE__, "login: %8s   Fee=%f PassiveTimePart=%f fee=%f\n",
       login.c_str(),
       tariff->GetFee(),
       GetPassiveTimePart(),
       f);
property.cash.Set(c - f, sysAdmin, login, store, "Subscriber fee charge");
ResetPassiveTime();
}

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

В связи с этим: что показывает параметр PassiveTime в stat-файле пользователя (ну или в базе, соответственно)?

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

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

В связи с этим: что показывает параметр PassiveTime в stat-файле пользователя (ну или в базе, соответственно)?

28 марта перевёл базу на MySQL, абонка тоже не снималась когда база была на файлах, в его stat

 

PassiveTime=477460358

 

такой же параметр сейчас в мускульной базе

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

Спасибо за поднятую панику, нашел багу. Проблема была в том что если пользователь целый месяц был "заморожен" ему не нужно снимать абонку и метод USER::ProcessDayFee просто завершался:

...
double passiveTimePart = 1.0;
if (!settings->GetFullFee())
   {
   passiveTimePart = GetPassiveTimePart();
   }
double f = tariff->GetFee() * passiveTimePart;

if (f == 0.0)
   return;
...

При этом не происходило сброса значения passiveTime для пользователя и на следующий месяц, хотя он уже и не "заморожен", его passiveTime оставался тем что и раньше и метод, как и раньше, просто завершался - и так до бесконечности.

Ошибка исправляется путем переноса вызова USER::ResetPassiveTime() из конца метода в строчку перед проверкой f == 0.0 (тоже, к стати, дурацкая проверка, может не работать, но ничего страшного при этом не произойдет - у пользователя снимется мизерная доля копейки).

Патч:

--- projects/stargazer/user.cpp	2010-05-13 13:29:43.616410461 +0300
+++ projects/stargazer/user.cpp.new	2010-05-13 13:30:27.569444110 +0300
@@ -1314,6 +1314,8 @@
    }
double f = tariff->GetFee() * passiveTimePart;

+ResetPassiveTime();
+
if (f == 0.0)
    return;

@@ -1324,7 +1326,6 @@
        GetPassiveTimePart(),
        f);
property.cash.Set(c - f, sysAdmin, login, store, "Subscriber fee charge");
-ResetPassiveTime();
}
//-----------------------------------------------------------------------------

Ссылка на сообщение
Поделиться на других сайтах
..... но ничего страшного при этом не произойдет - у пользователя снимется мизерная доля копейки).

да да кстати, у замороженых весь месяц снимаются этот мизер как раз :mellow:

у не замороженых и отмороженых юзеров больше месяца параметр PassiveTime должен быть = 0 правильно я понимаю?

 

подскажите как патчить? никогда не приходилось этого делать просто

Ссылка на сообщение
Поделиться на других сайтах
..... но ничего страшного при этом не произойдет - у пользователя снимется мизерная доля копейки).

да да кстати, у замороженых весь месяц снимаются этот мизер как раз :)

у не замороженых и отмороженых юзеров больше месяца параметр PassiveTime должен быть = 0 правильно я понимаю?

 

подскажите как патчить? никогда не приходилось этого делать просто

Копируем текст патча в файлик, скажем, passive-time-patch.diff и ложим его в корень проекта. Потом выполняем:

$ patch -p0 < passive-time-patch.diff

И оно должно написать что все прошло успешно. После этого пересобираем и делаем make install-bin либо раскидываем бинарники руками.

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

пропатчил, 10 минут полёт нормальный, и всё же вопрос по прежнему в голове крутится

у не замороженых и отмороженых юзеров больше месяца параметр PassiveTime должен быть = 0 правильно я понимаю?

кстати не много оффтопа, траффик считается точно по 1024кбайта в мегобайте? не 1000? почему то для теста скачиваю файл с фтп длинка размером 1712192 байта, инетаццесс насчитывает 1.72Мб, а должно быть 1.63

я это замечал и на предыдущих, а так же старых версиях стг

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

....1024кбайта в мегобайте? не 1000? почему то для теста скачиваю файл с фтп длинка размером 1712192 байта, инетаццесс насчитывает 1.72Мб, а должно быть 1.63

я это замечал и на предыдущих, а так же старых версиях стг

А как считается в тарифе (up+down)? Если так - то по моим экспериментам за запрос уходит 5..6% от размера

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

А как считается в тарифе (up+down)? Если так - то по моим экспериментам за запрос уходит 5..6% от размера

нет, только download, я даже не знаю как может считаться суммарно, как то не правильно это

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

Точно 1024.

Считаются данняе о размере из IP-заголовка. Т.е. overhead протоколов более высокого уровня (TCP, FTP, HTTP, etc.) тоже считается.

А почему неправильно?

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

Цифра 1712192 откуда взята?

размер скачанного файла в байтах

Надо бы размеры заголовков пакетов прибавить и установку TCP-соединения (если, конечно, по TCP передавался). А при передаче по почте еще происходит и MIME-кодирование и раза в 2 раздувает файл.

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

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

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

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

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

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

Вхід

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

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

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

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