Имеются критические ошибки в логе worker

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (7)

просмотр истории страницы
h1. Ошибки обработчика абонентов. Почему она возникла?
[Обработчик абонентов|CarbonBilling:Worker] абонентов|Worker (ядро биллинга)] является ключевым процессом продукта Carbon Billing 5 - именно он начисляется абонентскую плату, создаёт задания для демона отправки событий на оборудование, выполняет запланированные задачи и прочее.
Ошибки обработчика могут быть трех типов:
* *WARNING* - не критичная ошибка
* *ERROR* - ошибка средней критичности, к ним как правило относятся некорректные расчеты в ряде случаев, вызванные в основном некорректными настройками, которые можно исправить без подключения техподдержки
* *CRITICAL* - критичные ошибки, требующие анализа службой техподдержки и/или отделлом разработки
Вне зависимости от критичности ошибки, они требуют действий администратора или техподдержки для устранения.

** Удалите все правила тарификации сетей кроме 0.0.0.0/0, чтобы весь трафик учитывался по единственной услуге (не рекомендуется в случае тарификации помегабайтно)

h2. ERROR - Не выполнилось ни одной операции!

В логе воркера следующее сообщение:
{code}2020-10-28 01:41:08,289 - worker - balance_change - ERROR - Не выполнилось ни одной операции!{code}

1. Необходимо убедиться, что никаких дополнительных ошибок по платежам система мониторинга не фиксирует, проверить можно командой *server_check*
2. Включить уровень DEBUG в настройках службы worker по [инструкции|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=117145604#Worker(ядробиллинга)-Отладка]
3. Повторно проверить лог и обнаружить события, предшествующие возникновению ошибки, пример представлен ниже:
{code}2021-02-25 10:44:19,607 - worker - balance_change - INFO - Выставление счетов на предоплату
2021-02-25 10:44:19,639 - worker - balance_change - INFO - Выставление обычного счета абоненту Test1
2021-02-25 10:44:19,692 - worker - balance_change - ERROR - Не выполнилось ни одной операции!
2021-02-25 10:44:19,696 - worker - balance_change - INFO - Обработка баланса завершена
2021-02-25 10:44:19,696 - worker - base_worker - INFO - Обработано строк: 2, 0.168s (daemons.balance_change.0)
2021-02-25 10:44:19,697 - worker - worker - INFO - Processed 2 in 0.168s.
{code}
Проблема возникла при выставлении счета, требуется найти абонента в биллинге и проверить его состояние. В приведенном примере была заведена карточка абонента, был указан тариф без услуг, в результате биллингу не было возможности выставить счет по услугам, из-за их отсутствия.

Решение:
Добавить абоненту услугу с нулевой стоимостью и включить опцию в [настройках|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=63242421#Глобальныенастройкибиллингаиоператора-Общие] *Формировать нулевые счета*.
В таком случае, биллинг будет выставлять абоненту нулевые счета по услуге без обозначения ошибки.


h2. CRITICAL - Ошибка работы обработчика
После сообщения "CRITICAL - Ошибка работы обработчика" идет расширенное описание возникшей проблемы. Такие ошибки как правило являются исключительными ситуациями, требующими подключения отдела разработки. Так же к ним относятся ошибки невозможности работы с базой данных по тем или иным причинам, некоторые примеры описаны ниже.
* БД аккаунтинга трафика недоступна. Вероятная причина: она перезапускается из-за обнаруженных повисших транзакций.
{code}('Error while connecting to database:\n- SQLCODE: -902\n- I/O error for file "/var/db/buff_traf.gdb"\n- Error while trying to open file\n- No such file or directory', -902, 335544344){code}
* Недоступена СУБД. Вероятней всего БД отправлена в перезапуск во время выполнения запроса обработчиком; так же возможно на сервере проводятся какие-либо работы при которых она остановлена вручную, при этом почему-то обработчик абонентов оставили работать
{code}('Error while connecting to database:\n- SQLCODE: -902\n- Unable to complete network request to host "169.254.30.52".\n- Failed to establish a connection.\n- Connection refused', -902, 335544721){code}
* Проблема так же может возникнуть при перезапуске БД.
{code}('Error while connecting to database:\n- SQLCODE: -902\n- cannot start transaction for password database', -902, 335544654){code}
* Ошибка при выполненияи SQL-запроса обработчика абонентов. Если ошибка возникает постоянно, требуется подключить отдел разработки.
{code}('Error while preparing SQL statement:\n- SQLCODE: -902\n- database file appears corrupt (/mnt/db/billing.gdb)\n- wrong page type\n- page 269 is of wrong type (expected 6, found -1)', -902, 335544335, {'params': (True,), 'sql': u'SELECT "CURRENCY"."ID", "CURRENCY"."UPDATE_SERVER", "CURRENCY"."SHORT_NAME", "CURRENCY"."NAME", "CURRENCY"."PRIMARY_CUR" FROM "CURRENCY" WHERE "CURRENCY"."PRIMARY_CUR" = True'}){code}