счета

Технические вопросы по UTM 5.0
Ответить
emptywee
Сообщения: 1
Зарегистрирован: Пн фев 20, 2006 12:44

счета

Сообщение emptywee »

Всем добрый вечер :)) Пока только начал разбираться с новой системой.. UTM 5.0 билд 015. Столкнулся с проблемой:
юзер заходит через веб-морду, видит баланс в минусе, идет выписать счет на 1000 рублей (например), жмет ОК, ему появляется окно с квиточком... Я в админском интерфейсе смотрю в "Отчеты"|"Счета" и вижу какой-то левый счет (к этому отношения не имеет никакого, на несуществующего пользователя создан 4 часа назад вовсе). А правильные счета не добавляются. И соотственно я не могу ни поставить галочку, что счет оплачен, или воопще какие-то другие действия совершить... что я делаю не так?:)

Еще не по теме, но... тоже вопрос... в логах постгреса вижу записи
Feb 20 16:36:04 xxx postgres[594]: [65-1] ERROR: неверный входной синтаксис для типа bigint: "5371.000000"
Feb 20 16:36:04 xxx postgres[594]: [66-1] ERROR: повторный ключ нарушает констрейнт UNIQUE "discount_transactions_iptraffic_all_pkey"

и такие
Feb 20 15:49:37 xxx postgres[594]: [19-1] ERROR: неверный входной синтаксис для типа bigint: "33464343.000000"

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

и такие вот есть еще записи настораживающие :)
Feb 20 15:25:03 xxx postgres[594]: [7-1] ERROR: currval (текущее значение) последовательности "dtagg_iptraffic_id_seq" ещё не определено в этой сессии


Воопщем не все гладко, а я так не люблю :)) Кто чем может помочь или посоветовать? Заранее спасибо. Вообще желательно бы наладить какой-нить контакт по е-мылу или аське с гуру в UTM ;-)

With best regards, Igor :)

KeNt
Сообщения: 10
Зарегистрирован: Чт авг 07, 2008 12:51

Сообщение KeNt »

Feb 20 16:36:04 xxx postgres[594]: [66-1] ERROR: повторный ключ нарушает констрейнт UNIQUE "discount_transactions_iptraffic_all_pkey"

та же беда сегодня приключилась

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

Re: счета

Сообщение Magnum72 »

emptywee писал(а):Всем добрый вечер :)) Пока только начал разбираться с новой системой.. UTM 5.0 билд 015. Столкнулся с проблемой:
юзер заходит через веб-морду, видит баланс в минусе, идет выписать счет на 1000 рублей (например), жмет ОК, ему появляется окно с квиточком... Я в админском интерфейсе смотрю в "Отчеты"|"Счета" и вижу какой-то левый счет (к этому отношения не имеет никакого, на несуществующего пользователя создан 4 часа назад вовсе). А правильные счета не добавляются. И соотственно я не могу ни поставить галочку, что счет оплачен, или воопще какие-то другие действия совершить... что я делаю не так?:)

Еще не по теме, но... тоже вопрос... в логах постгреса вижу записи
Feb 20 16:36:04 xxx postgres[594]: [65-1] ERROR: неверный входной синтаксис для типа bigint: "5371.000000"
Feb 20 16:36:04 xxx postgres[594]: [66-1] ERROR: повторный ключ нарушает констрейнт UNIQUE "discount_transactions_iptraffic_all_pkey"

и такие
Feb 20 15:49:37 xxx postgres[594]: [19-1] ERROR: неверный входной синтаксис для типа bigint: "33464343.000000"

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

и такие вот есть еще записи настораживающие :)
Feb 20 15:25:03 xxx postgres[594]: [7-1] ERROR: currval (текущее значение) последовательности "dtagg_iptraffic_id_seq" ещё не определено в этой сессии


Воопщем не все гладко, а я так не люблю :)) Кто чем может помочь или посоветовать? Заранее спасибо. Вообще желательно бы наладить какой-нить контакт по е-мылу или аське с гуру в UTM ;-)

With best regards, Igor :)
очень старый билд похоже, я слышал что подобные проблемы бвли исправленны очень давно

serjk
NetUP Team
Сообщения: 719
Зарегистрирован: Пн авг 14, 2006 08:56

Re: счета

Сообщение serjk »

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

GreenX
Сообщения: 3
Зарегистрирован: Вт авг 12, 2008 10:46

Сообщение GreenX »

Добрый день,

Пытаюсь поднять новую базу на postgresql.
До какого-то места настройка шла своим чередом.
Сегодня настроил экспорт netflow.
Ожидал, что начнет учет, но в отчетах нули.
В детальных отчетах по трафику цыфры есть, но насколько я понимаю netup их берет из своих /netup/utm5/db/*,
но в базу они не заносятся.
В логах postgresql обнаружил подобную ошибку:

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

LOG: statement: ROLLBACK
LOG: statement: INSERT INTO discount_transactions_iptraffic_all(id,account_id,discount,discount_with_tax,service_id,slink_id,discount_date,discount_date_hour,discount_date_day,discount_date_month,t_class,base_cost,ipid,bytes,discount_period_id) VALUES('88','48','0','0','2','49','1234878575','1234875600','1234818000','1233435600','4000','0','167772163','10588','4')
ERROR: duplicate key value violates unique constraint "discount_transactions_iptraffic_all_pkey"
STATEMENT: INSERT INTO discount_transactions_iptraffic_all(id,account_id,discount,discount_with_tax,service_id,slink_id,discount_date,discount_date_hour,discount_date_day,discount_date_month,t_class,base_cost,ipid,bytes,discount_period_id) VALUES('88','48','0','0','2','49','1234878575','1234875600','1234818000','1233435600','4000','0','167772163','10588','4')
LOG: statement: COMMIT
WARNING: there is no transaction in progress
Что с этим можно сделать?

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

uname -rms
FreeBSD 7.1-STABLE amd64

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

pkg_info |egrep 'postgr|utm'
postgresql-client-8.3.6 PostgreSQL database (client)
postgresql-server-8.3.6 The most advanced open-source database available anywhere
utm5-2.1.006        Universal Billing System for ISP

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

Сообщение Magnum72 »

У тебя разъехались таблички
discount_transactions_iptraffic_all и discount_transactions_all
как вариант решения в таблице discount_transactions_all увеличить автоинкремент установив его значение в максимальное значение+1 в таблице discount_transactions_iptraffic_all, до кучи можешь удалить индекс у поля id из таблицы discount_transactions_iptraffic_all, он там нахрен не нужен

GreenX
Сообщения: 3
Зарегистрирован: Вт авг 12, 2008 10:46

Сообщение GreenX »

как вариант решения в таблице discount_transactions_all увеличить автоинкремент установив его значение в максимальное значение+1 в таблице discount_transactions_iptraffic_all
угу, понял. Делал, однако utm сам его правит.
Стал разбираться, см. последовательно:

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

LOG:  statement: SELECT id FROM discount_transactions_all ORDER BY id DESC LIMIT 1
Поиск ID поледней записи. (? id=4499)

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

LOG:  statement: SELECT setval('discount_transactions_all_id_seq', 4499)
Установка счетчика

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

LOG:  statement: INSERT INTO discount_transactions_all(account_id,incoming_rest,outgoing_rest,discount,discount_with_tax,service_id,service_type,slink_id,disc
ount_date,charge_type,discount_period_id) VALUES('53','0','0','0','0','2','3','54','1235029977','3','4')
Вставка новой транзакции (? id=4500)

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

LOG:  statement: SELECT currval('discount_transactions_all_id_seq')
Получение тогоже счетчика (id=4500, вдруг postgresql не смог прибавить один)
И далее, следует эта ошибка.

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

LOG:  statement: SELECT id FROM discount_transactions_iptraffic_all ORDER BY id DESC LIMIT 1
Поиск ID поледней записи. (? id=10016)

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

LOG:  statement: SELECT setval('discount_transactions_iptraffic_all_id_seq', 10016)
Установка счетчика

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

LOG:  statement: INSERT INTO discount_transactions_iptraffic_all(id,account_id,discount,discount_with_tax,service_id,slink_id,discount_date,discount_date_hour
,discount_date_day,discount_date_month,t_class,base_cost,ipid,bytes,discount_period_id) VALUES('4500','53','0','0','2','54','1235029977','1235026800','1234990
800','1233435600','20','0','-709135791','27556976','4')
ERROR:  duplicate key value violates unique constraint "discount_transactions_iptraffic_all_pkey"
Вставка новой транзакции.
С какого перепугу она здесь id=4500, а не 10016?
Да и нахрена индекс "руками" вставлять ?
Т.е. получается при "нормальном" функционировании базы, они должны быть равны, либо вставляется не тот индекс. ?BUG?
Хорошо, что база еще не рабочая и помогло удаление лишних строк.

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

DELETE FROM discount_transactions_iptraffic_all WHERE id > (SELECT id FROM discount_transactions_all ORDER BY id DESC LIMIT 1);

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

Сообщение Magnum72 »

GreenX писал(а): Т.е. получается при "нормальном" функционировании базы, они должны быть равны, либо вставляется не тот индекс. ?BUG?
Хорошо, что база еще не рабочая и помогло удаление лишних строк.

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

DELETE FROM discount_transactions_iptraffic_all WHERE id > (SELECT id FROM discount_transactions_all ORDER BY id DESC LIMIT 1);
Именно.
Логика такая:
Вставляем значение в discount_transactions_all, смотрим какое id получила эта строка, вставляем в discount_transactions_iptraffic_all строку с аналогичным id. Следовательно индекс и автоинкремент на поле id в discount_transactions_iptraffic_all не нужен.

GreenX
Сообщения: 3
Зарегистрирован: Вт авг 12, 2008 10:46

Сообщение GreenX »

Но ведь эта зараза, дергает обе последовательности:

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

#grep _seq /usr/local/pgsql/data/pg_log/postgresql-2009-02-20_000000.log|tail -4
LOG:  statement: SELECT setval('discount_transactions_all_id_seq', 8624)
LOG:  statement: SELECT currval('discount_transactions_all_id_seq')
LOG:  statement: SELECT setval('discount_transactions_iptraffic_all_id_seq', 8624)
LOG:  statement: SELECT currval('discount_transactions_iptraffic_all_id_seq')
Причем discount_transactions_iptraffic_all_id_seq я руками создал, иначе тоже ругалась, правда ROLLBACK не пыталась сделать.
А с индексом согласен, прада хрен знает, что она будет делать когда два одинаковых id найдет.
Ну ладно, в целом ясно, моё мнение, что это баг и так не должно быть.
А нетуп, по традиции, послал меня ко мне же, что бы я бекуп вернул. :)

Ответить