Ошибка повторилась, пытаюсь найти хвосты. Ситуация с тарифами примерно такая: создан тариф 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. Таблицы не битые.