Правильная классификация и отсутствие тарификации !!!

Технические вопросы по UTM 5.0
dda2000
Сообщения: 38
Зарегистрирован: Ср сен 13, 2006 12:55

Сообщение dda2000 »

У меня эта проблема тоже переодически возникает
У некоторых пользователей, трафик начинает падать на 0-ой класс трафика. Однажды из-за этого 20 Гб ушло мимо кассы. Теперь стараюсь каждый день контролировать, но это не дело ...
Проблему решал, путем рестарта коры.

Эта проблема решена в 005 релизе???

Аватара пользователя
Ata-man
Сообщения: 427
Зарегистрирован: Пт янв 21, 2005 10:04
Откуда: Екатеринбург

Сообщение Ata-man »

Эта проблема решена в 005 релизе???
Разработчики говорят, что решена :)

Pulse
Сообщения: 945
Зарегистрирован: Вт окт 03, 2006 12:58

Сообщение Pulse »

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

Aleks
Сообщения: 482
Зарегистрирован: Сб дек 03, 2005 08:35

Сообщение Aleks »

Вот еще одна причина в копилку

ERROR : Apr 08 10:53:03 DBAGlukError: DBAccess::__delete_service, service_id=141, links_count 1
?Trace : Apr 08 10:53:03 trace: Obtained 5 stack frames.
?Trace : Apr 08 10:53:03 trace: /netup/utm5/bin/utm5_core(_Z15print_backtracev+0x1d) [0x83072dd]
?Trace : Apr 08 10:53:03 trace: /netup/utm5/bin/utm5_core(_ZN3UTM8DBAccess16__delete_serviceEib+0x174e) [0x81c815e]
?Trace : Apr 08 10:53:03 trace: /netup/utm5/bin/utm5_core(_ZN3UTM11BusPeriodic7processEPv+0x52e) [0x82f9e3e]
?Trace : Apr 08 10:53:03 trace: /lib/libpthread.so.0 [0xf7e0f3db]
?Trace : Apr 08 10:53:03 trace: /lib/libc.so.6(clone+0x5e) [0x4899406e]
ERROR : Apr 08 10:53:03 DBAGlukError: DBAccess::__delete_service, service_id=141, links_count 1

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

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

Впоролся в эту ошибку. благодаря тыканью носом в топик от Aleks(спасибо! очень помог!), моральной поддержке Magnum72 в аське(тоже огромная благодарность!) выяснил, что наличествует 400+ дублей в табличке.
Дубли были полностью идентичные. То есть не было такого, чтоб id разный, количество трафика разное, он одинаковый класс и downloaded_id.
Вручную править дубли устал быстро...
для себя нарисовал вот такой вот скриптец:

Код: Выделить всё

#!/usr/bin/perl -w

use DBI;
my $db='UTM5';
my $host='127.0.0.1';
my $user='root';
my $password='пароль_от_СУБД';
my $dbh=DBI->connect("DBI:mysql:$db:$host", "$user", "$password", { PrintError => 0}) || die $DBI::errstr;
my $select = "SELECT `downloaded_id`, `tclass_id`, COUNT(*) AS count FROM `downloaded` WHERE `is_deleted` = 0 GROUP BY `downloaded_id`, `tclass_id` HAVING count > 1;";
my $sth = $dbh->prepare($select);
$sth->execute();

while (my $ary=$sth->fetchrow_hashref())
        {
            $downloaded_id= $ary->{'downloaded_id'};
            $tclass_id= $ary->{'tclass_id'};
            print "cleaning ".$downloaded_id ." and  ".$tclass_id ."\r\n";
            $select="SELECT id from downloaded where downloaded_id=".$downloaded_id ." and tclass_id=". $tclass_id;
            my $sth1=$dbh->prepare($select);
            $sth1->execute();
            if (my $ary1=$sth1->fetchrow_hashref())
                {
                my $id=$ary1->{'id'};
                my $sth2=$dbh->prepare("delete from downloaded where id!=". $id ." and downloaded_id=". $downloaded_id ." and tclass_id=". $tclass_id);
                $sth2->execute();
                $sth2->finish;
                };
            $sth1->finish;
        }
$sth->finish;
$dbh->disconnect;
                    
Собсно, после прогона вроде все нормализовалось. Надеюсь, еще кому-нибудь поможет.
ЗЫ: алгоритм задуман как:
1. выбираем все записи с дублями.
2. Для каждой комбинации downloaded_id и tclass_id запоминаем первый id
3. удаляем все записи из таблицы, где id не равно тому, что мы запомнили и при этом downloaded_id и tclass_id совпадают с текущими.

Закрыто