Проблема с бордерами: разные тарифы, одинаковые tst_id

Технические вопросы по UTM 5.0
Ответить
dk
Сообщения: 424
Зарегистрирован: Чт авг 10, 2006 08:52

Проблема с бордерами: разные тарифы, одинаковые tst_id

Сообщение dk »

После обновления до 007 (установка на новый сервер с нуля) появилась ошибка: с некоторого момента (сразу после перезагрузки всё нормально) для всех новых услуг в базу записывается один tst_id. При этом админка до перезагрузки отображает корректные бордеры, после всё сбрасывается на одинаковые. В sql-запросе сразу после создания нового тарифа неправильный tst_id. В traf_serv_tclasses/iptraffic_borders новые данные не добавляются.

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

mysql> SELECT * FROM iptraffic_services_data ORDER BY id DESC LIMIT 10;
+-----+--------+----------------------+------------+
| id  | tst_id | null_service_prepaid | is_deleted |
+-----+--------+----------------------+------------+
| 651 |    365 |                    0 |          0 |
| 650 |    364 |                    0 |          0 |
| 649 |    364 |                    0 |          0 |
| 648 |    364 |                    0 |          0 |
| 646 |    364 |                    0 |          0 |
| 645 |    364 |                    0 |          0 |
| 644 |    364 |                    0 |          0 |
| 643 |    364 |                    0 |          0 |
| 642 |    364 |                    0 |          0 |
| 641 |    364 |                    0 |          0 |
+-----+--------+----------------------+------------+
Это лечится?..

P.S. В верификаторе пусто.

gil
Сообщения: 355
Зарегистрирован: Вт ноя 11, 2008 14:28

Сообщение gil »

а в debug.log есть что-нибудь на эту тему?

dk
Сообщения: 424
Зарегистрирован: Чт авг 10, 2006 08:52

Сообщение dk »

gil писал(а):а в debug.log есть что-нибудь на эту тему?
К сожалению, старые логи уже удалились. После последней перезагрузки ещё не воспроизводилось (но это лишь вопрос времени).

gil
Сообщения: 355
Зарегистрирован: Вт ноя 11, 2008 14:28

Сообщение gil »

ну тогда ждать следующего глюка, и смотреть дебаг.лог..

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Re: Проблема с бордерами: разные тарифы, одинаковые tst_id

Сообщение Magnum72 »

dk писал(а):После обновления до 007 (установка на новый сервер с нуля) появилась ошибка: с некоторого момента (сразу после перезагрузки всё нормально) для всех новых услуг в базу записывается один tst_id. При этом админка до перезагрузки отображает корректные бордеры, после всё сбрасывается на одинаковые. В sql-запросе сразу после создания нового тарифа неправильный tst_id. В traf_serv_tclasses/iptraffic_borders новые данные не добавляются.

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

mysql> SELECT * FROM iptraffic_services_data ORDER BY id DESC LIMIT 10;
+-----+--------+----------------------+------------+
| id  | tst_id | null_service_prepaid | is_deleted |
+-----+--------+----------------------+------------+
| 651 |    365 |                    0 |          0 |
| 650 |    364 |                    0 |          0 |
| 649 |    364 |                    0 |          0 |
| 648 |    364 |                    0 |          0 |
| 646 |    364 |                    0 |          0 |
| 645 |    364 |                    0 |          0 |
| 644 |    364 |                    0 |          0 |
| 643 |    364 |                    0 |          0 |
| 642 |    364 |                    0 |          0 |
| 641 |    364 |                    0 |          0 |
+-----+--------+----------------------+------------+
Это лечится?..

P.S. В верификаторе пусто.
У меня была такая проблема, но не могу вспомнить как я ее решил..

dk
Сообщения: 424
Зарегистрирован: Чт авг 10, 2006 08:52

Сообщение dk »

Ошибка повторилась, пытаюсь найти хвосты. Ситуация с тарифами примерно такая: создан тариф 1, перезагрузка биллинга, изменён тариф 1, создан тариф 2.

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

mysql> select tst_id,tariff_id,service_name from iptraffic_services_data,services_data where tst_id=374 and iptraffic_services_data.id=services_data.id;
+--------+-----------+----------------------------------------------------+
| tst_id | tariff_id | service_name                                       |
+--------+-----------+----------------------------------------------------+
|    374 |       552 | Абонентская плата, 1.5 Мбит/с                      |
|    374 |       556 | Абонентская плата                                  |
+--------+-----------+----------------------------------------------------+

Логи по изменению: непонятно, отсутствует сохранение tst/бордеров, только SELECT max(...). В границах тарификации для этого юзера в админке пустота!
?Debug : Feb 05 10:54:58 RPCConn[SSL]<ap@10.14.6.182>: Call: 0x3013 (rpcf_edit_tariff)
...
?Debug : Feb 05 10:54:58 RPCConn[SSL]<ap@10.14.6.182>: Call 0x3013 (rpcf_edit_tariff) finished...

?Debug : Feb 05 10:55:05 RPCConn[SSL]<ap@10.14.6.182>: Call: 0x3015 (rpcf_del_service_from_tariff)
?Debug : Feb 05 10:55:05 DBCtx: <173115440> SQL query: UPDATE tariffs_services_link SET is_deleted='1' WHERE is_deleted='0' AND tariff_id='552' AND service_id='655'
?Debug : Feb 05 10:55:05 DBCtx: <173115440> SQL query: UPDATE iptraffic_services_data SET is_deleted=1 WHERE id=655
?Debug : Feb 05 10:55:05 DBCtx: <173115440> SQL query: UPDATE periodic_services_data SET is_deleted=1 WHERE id=655
?Debug : Feb 05 10:55:05 RPCConn[SSL]<ap@10.14.6.182>: Call 0x3015 (rpcf_del_service_from_tariff) finished...


?Debug : Feb 05 10:56:56 RPCConn[SSL]<ap@10.14.6.182>: Call: 0x3014 (rpcf_add_service_to_tariff)
?Debug : Feb 05 10:56:56 RPCConn[SSL]<ap@10.14.6.182>: Real Call: 0x3014 (rpcf_add_service_to_tariff)
?Debug : Feb 05 10:56:56 DBCtx: <173115440> SQL query: INSERT INTO services_data( service_name, service_type, comment, tariff_id, parent_service_id, link_by_default, is_dynamic ) VALUES( '???','552','1','1','0')
?Debug : Feb 05 10:56:56 DBCtx: <173115440> SQL query: INSERT INTO tariffs_services_link(tariff_id,service_id) VALUES('552','661')
?Debug : Feb 05 10:56:56 DBCtx: <173115440> SQL query: INSERT INTO periodic_services_data(id,cost,discount_method,start_date,expire_date,radius_sessions_limit) VALUES ('661', '6000', '2','1265356616','2000000000','0')
?Debug : Feb 05 10:56:56 DBCtx: <173115440> SQL SELECT query: SELECT max(tst_id) FROM traf_serv_tclasses
?Debug : Feb 05 10:56:56 DBCtx: <173115440> SQL SELECT query: SELECT max(borders_id) FROM iptraffic_borders
?Debug : Feb 05 10:56:56 DBCtx: <173115440> SQL query: INSERT INTO iptraffic_services_data( id, tst_id, null_service_prepaid ) VALUES( '661', '374', '0')
?Debug : Feb 05 10:56:56 BusPeriodic: BusPeriodic::rehash_periodic calling pthread_cond_signal
?Debug : Feb 05 10:56:56 DBAGiga: Rehash: Target: 28; Action: 2; Ptr: b24fcda0
?Debug : Feb 05 10:56:56 DBCtx: <173115440> SQL query: INSERT INTO user_log(user_id,date,who,what,comment) VALUES('0', '1265356616', '-5', 'add service to tariff', 'tariff id 552 service id 661')
?Debug : Feb 05 10:56:56 BusPeriodic: Wait result:0
?Debug : Feb 05 10:56:56 BusPeriodic: real_rehash start
?Debug : Feb 05 10:56:56 RPCConn[SSL]<ap@10.14.6.182>: Call 0x3014 (rpcf_add_service_to_tariff) finished...
?Debug : Feb 05 10:56:56 RPCConn[SSL]<ap@10.14.6.182>: Stream cleared
Добавление нового тарифа: тут вроде проблем не видно, кроме как пересекающихся tst/border.
?Debug : Feb 05 11:08:32 RPCConn[SSL]<init@192.168.111.2>: Call: 0x3014 (rpcf_add_service_to_tariff)
?Debug : Feb 05 11:08:32 RPCConn[SSL]<init@192.168.111.2>: Real Call: 0x3014 (rpcf_add_service_to_tariff)
?Debug : Feb 05 11:08:32 RPCServer@0.0.0.0: add iptraffic service to tariff tclass <10> cost <0.000000>
?Debug : Feb 05 11:08:32 DBCtx: <173115440> SQL query: INSERT INTO services_data( service_name, service_type, comment, tariff_id, parent_service_id, link_by_default, is_dynamic ) VALUES( '???', '3', '???','556','1','1','0')
?Debug : Feb 05 11:08:32 DBCtx: <173115440> SQL query: INSERT INTO tariffs_services_link(tariff_id,service_id) VALUES('556','662')
?Debug : Feb 05 11:08:32 DBCtx: <173115440> SQL query: INSERT INTO periodic_services_data(id,cost,discount_method,start_date,expire_date,radius_sessions_limit) VALUES ('662', '111', '2','1265357312','2000000000','0')
?Debug : Feb 05 11:08:32 DBCtx: <173115440> SQL SELECT query: SELECT max(tst_id) FROM traf_serv_tclasses
?Debug : Feb 05 11:08:32 DBCtx: <173115440> SQL SELECT query: SELECT max(borders_id) FROM iptraffic_borders
?Debug : Feb 05 11:08:32 UTM5 DBA: Sending sql req <INSERT INTO iptraffic_borders( borders_id, border, cost ) VALUES( '581', '0', '0')>
?Debug : Feb 05 11:08:32 DBCtx: <173115440> SQL query: INSERT INTO iptraffic_borders( borders_id, border, cost ) VALUES( '581', '0', '0')
?Debug : Feb 05 11:08:32 DBCtx: <173115440> SQL query: INSERT INTO traf_serv_tclasses( tst_id, tclass_id, borders_id, group_id, prepaid_units, prepaid_units_max, tariff_formula ) VALUES( '374', '10', '581', '1', '0', '0', '1')
?Debug : Feb 05 11:08:32 UTM5 DBA: Sending sql req <INSERT INTO iptraffic_borders( borders_id, border, cost ) VALUES( '582', '0', '0')>
?Debug : Feb 05 11:08:32 DBCtx: <173115440> SQL query: INSERT INTO iptraffic_borders( borders_id, border, cost ) VALUES( '582', '0', '0')
?Debug : Feb 05 11:08:32 DBCtx: <173115440> SQL query: INSERT INTO traf_serv_tclasses( tst_id, tclass_id, borders_id, group_id, prepaid_units, prepaid_units_max, tariff_formula ) VALUES( '374', '20', '582', '1', '0', '0', '1')
?Debug : Feb 05 11:08:32 DBCtx: <173115440> SQL query: INSERT INTO iptraffic_services_data( id, tst_id, null_service_prepaid ) VALUES( '662', '374', '0')
?Debug : Feb 05 11:08:32 BusPeriodic: BusPeriodic::rehash_periodic calling pthread_cond_signal
?Debug : Feb 05 11:08:32 BusPeriodic: Wait result:0
?Debug : Feb 05 11:08:32 DBAGiga: Rehash: Target: 28; Action: 2; Ptr: b3262da0
?Debug : Feb 05 11:08:32 DBCtx: <173115440> SQL query: INSERT INTO user_log(user_id,date,who,what,comment) VALUES('0', '1265357312', '-1', 'add service to tariff', 'tariff id 556 service id 662')
?Debug : Feb 05 11:08:32 BusPeriodic: real_rehash start
?Debug : Feb 05 11:08:32 RPCConn[SSL]<init@192.168.111.2>: Call 0x3014 (rpcf_add_service_to_tariff) finished...
Предполагаю, что при изменении в БД занеслись предполагаемые tst_id и borders_id без самих тст/бордеров, при добавлении они же с реальными данными?
На новых тарифах проверить пока не получается, возможно глюк проявляется после перезагрузки?

P.S. Таблицы не битые.

Ответить