forum.bitel.ru
http://forum.bitel.ru/

Lock wait timeout в логах
http://forum.bitel.ru/viewtopic.php?f=44&t=7500
Страница 1 из 3

Автор:  vkulakov [ 05 дек 2012, 18:21 ]
Заголовок сообщения:  Lock wait timeout в логах

Собирались плавно переводить абонентов с DialUp на Inet, но получилось так, что все абоненты разом перескочили на новый модуль и начали авторизовываться. По прошествии некоторого времени в логах Access и Accounting сервером наблюдаются следующие ошибки:
Код:
radius 12-05/16:02:04 ERROR [rdsLstnr-p-9-t-36] InetRadiusProcessor - java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
ru.bitel.bgbilling.common.BGException: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
        at ru.bitel.bgbilling.modules.inet.api.server.bean.InetConnectionDao.insert(InetConnectionDao.java:101)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authorization(InetRadiusProcessor.java:822)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authenticationImpl(InetRadiusProcessor.java:527)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:422)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:1)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.authentication(RadiusSession.java:115)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.accessRequest(RadiusSession.java:92)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequestImpl(RadiusProcessor.java:390)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:370)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:1)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequest(RadiusProcessor.java:377)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:58)
        at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:1)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:213)
        at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
        at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
        at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
        at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
        at ru.bitel.bgbilling.modules.inet.api.server.bean.InetConnectionDao.insert(InetConnectionDao.java:95)
        ... 19 more

Может кто подсказать пути решения?

Автор:  Amir [ 05 дек 2012, 19:01 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Сколько одновременных сессий? Ошибок таких много?

Автор:  vkulakov [ 05 дек 2012, 19:52 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Пока 4040. Появляется примерно раз в 10 минут.

Автор:  vkulakov [ 05 дек 2012, 20:01 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

В интернете рекомендуют оптимизировать свой код. :) Ну и увеличивать innodb_lock_wait_timeout. Сейчас стоит 120 сек.

Автор:  Amir [ 05 дек 2012, 20:02 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Выложили обновление, но не уверен, что в этом дело. Не забудьте сделать бэкап старых библиотек.
В обработчике процессора протокола ничего не делаете с базой же?

С lock wait timout на INSERT сложнее разобраться, чтобы оптимизировать :)

Увеличение innodb_lock_wait_timeout более 120 здесь не поможет.

Покажите, на всякий случай, SHOW CREATE TABLE inet_connection_$mid

Автор:  vkulakov [ 05 дек 2012, 21:00 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Просто так обновляться нежелательно, можно сказать, что невозможно. Всё-таки рабочая система...

На всякий случай прикладываю вывод:
Код:
CREATE TABLE `inet_connection_24` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `parentId` bigint(20) NOT NULL,
  `deviceId` int(11) NOT NULL,
  `devicePort` int(11) NOT NULL,
  `agentDeviceId` int(11) NOT NULL DEFAULT '0',
  `acctSessionId` varchar(80) DEFAULT NULL,
  `username` varchar(40) DEFAULT NULL,
  `type` int(11) NOT NULL,
  `accessCode` smallint(6) NOT NULL,
  `servId` int(11) NOT NULL,
  `calledStationId` varchar(50) DEFAULT NULL,
  `callingStationId` varchar(50) DEFAULT NULL,
  `ipResourceId` int(11) NOT NULL,
  `ipAddress` varbinary(24) DEFAULT NULL,
  `connectionStart` datetime NOT NULL,
  `deviceState` smallint(6) NOT NULL DEFAULT '1',
  `deviceOptions` char(250) NOT NULL,
  `status` smallint(6) NOT NULL,
  KEY `id` (`id`),
  KEY `nas` (`deviceId`,`devicePort`),
  KEY `serv` (`servId`),
  KEY `parent` (`parentId`),
  KEY `connectionStart` (`connectionStart`),
  KEY `ipAddress` (`ipAddress`)
) ENGINE=InnoDB AUTO_INCREMENT=30607 DEFAULT CHARSET=cp1251
/*!50100 PARTITION BY HASH (deviceId)
PARTITIONS 8 */ |


Автор:  vkulakov [ 05 дек 2012, 21:27 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Забыл ответить: с базой никто ничего больше не делает.

Автор:  vkulakov [ 05 дек 2012, 21:41 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Полез в логи базы и сделал следующие выводы: проблема возникает с таблицей inet_session_$mid_seq, которая, по всей видимости, используется для генерирования уникальных идентификаторов сессий. Многочисленные потоки и сервера (?) добавляют и удаляют данные из этой таблицы при авторизации абонентов и, соответственно, устанавливают блокировки. Когда происходит очень много подключений в единицу времени эти блокировки "перекрываются" (с учётом таймаута) и возникает ошибка, которая, возможно, приводит к отбрасыванию соединения - это очень плохо.
Вообще, такой механизм генерирования уникальных идентификаторов сложно назвать удачным - mysql для такой операции слишком избыточен. Здесь бы следовало использовать счётчик в памяти и мютексы (ну или как там это называется). На крайний случай можно использовать NoSQL базы - всё лучше чем MySQL.

Уважаемые разработчики, поясните, пожалуйста, чем обусловлено использование такого механизма? Если я оказался не прав в своих догадках, сильно не пинайте. Буду признателен, если разработчики найдут время и подробно ответят.

Автор:  vkulakov [ 05 дек 2012, 21:54 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Ещё в Accounting сервере возникает ошибка "Соединение не найдено" - это случаем не связано с обсуждаемой проблемой?

Автор:  Amir [ 05 дек 2012, 21:55 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Какая версия mysql? transaction_mode repeatable read?

Сколько сессий за сколько мс сбрасывает в среднем (SessionFlushingManager - Flushed N sessions for T ms)?

Нужно попробовать делать периодически PROCESS LIST, пока не появится как минимум два процесса, у которых длительность приближается к 120 и один из них - INSERT INTO inet_connection_<mid>... Тогда будет понятнее кто кому мешает. Пока в "синтетических" тестах повторить не получилось.

Автор:  Amir [ 05 дек 2012, 22:09 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Цитата:
Полез в логи базы и сделал следующие выводы: проблема возникает с таблицей inet_session_$mid_seq, которая, по всей видимости, используется для генерирования уникальных идентификаторов сессий. Многочисленные потоки и сервера (?) добавляют и удаляют данные из этой таблицы при авторизации абонентов и, соответственно, устанавливают блокировки. Когда происходит очень много подключений в единицу времени эти блокировки "перекрываются" (с учётом таймаута) и возникает ошибка, которая, возможно, приводит к отбрасыванию соединения - это очень плохо.
Вообще, такой механизм генерирования уникальных идентификаторов сложно назвать удачным - mysql для такой операции слишком избыточен. Здесь бы следовало использовать счётчик в памяти и мютексы (ну или как там это называется). На крайний случай можно использовать NoSQL базы - всё лучше чем MySQL.
В InnoDB, как оказалось поле auto_increment после рестарта MySQL каждый раз инициализируется заново, как MAX(id), что не логично и не удобно, т.к. при переносе соединения в таблицу-лог в inet_connection может остаться соединение с меньшим id и после перезагрузки MySQL появится соединение с дублирующимся id. Счетчик в памяти нельзя использовать, т.к. InetAccounting-ов может быть несколько.

MySQLпредлагают такой вариант для эмулирования sequence:
Цитата:
If expr is given as an argument to LAST_INSERT_ID(), the value of the argument is returned by the function and is remembered as the next value to be returned by LAST_INSERT_ID(). This can be used to simulate sequences:

Create a table to hold the sequence counter and initialize it:

mysql> CREATE TABLE sequence (id INT NOT NULL);
mysql> INSERT INTO sequence VALUES (0);
Use the table to generate sequence numbers like this:

mysql> UPDATE sequence SET id=LAST_INSERT_ID(id+1);
mysql> SELECT LAST_INSERT_ID();
The UPDATE statement increments the sequence counter and causes the next call to LAST_INSERT_ID() to return the updated value. The SELECT statement retrieves that value. The mysql_insert_id() C API function can also be used to get the value. See Section 20.7.3.37, “mysql_insert_id()”.
Он используется сейчас в модуле MPS. Но по тестам он в транзакции блокирует до коммита (т.е. UPDATE sequence SET id=LAST_INSERT_ID(id+1) ждет пока не будет закончена другая транзакция с этой же командой), чего не делает auto_increment.
Поэтому применили измененный вариант, который по тестам в параллельных потоках отрабатывал эффективнее(конкурентнее):
Код:
INSERT INTO inet_connection_<mid>_seq (id) VALUES (NULL)
ps.executeUpdate();
final long id = ServerUtils.lastInsertId( ps );

// чтобы не копить записи в таблице генерирования id
if( id % 100 == 0L )
{
    DELETE FROM inet_connection_<mid>_seq WHERE id<?
    ps.setLong( 1, id - 500 );
    ps.executeUpdate();
}
В последнем билде поменяли 100 и 500 на 1000 и 1000.

Автор:  Amir [ 05 дек 2012, 22:10 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Цитата:
проблема возникает с таблицей inet_session_$mid_seq
А что пишет mysql в логах про это?

Автор:  afedorov [ 05 дек 2012, 23:50 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Такое решение рассматривали? http://engineering.twitter.com/2010/06/ ... flake.html

Изменение 100 и 500 на 1000 и 1000 сделает возникновение проблемы реже, но на больший срок. Получим тоже самое.
В ЧНН Inet радиусы идут в разнос, ошибки с локами начинают валиться постоянно, очереди запросов разрастаются и не успевают обрабатываться.
Нынешняя реализация неработоспособна.

Автор:  Amir [ 06 дек 2012, 00:23 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

DELETE FROM inet_connection_<mid>_seq WHERE id<? похоже вызывает deadlock (gap, next-key etc).
Поменял в inet_connection_<mid>_seq индекс key(id) на primary key(id) проблема ушла.

Автор:  Amir [ 06 дек 2012, 00:36 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Цитата:
Такое решение рассматривали?
Пока нет, т.к. проблема выяснилась в середине версии и обычного, нормального (который не может вдруг уменьшиться или обнулиться - как баг-репорт в mysql висит с 2008 года) auto_increment'а или неблокирующего sequence'а нам бы хватило.

В данном случае "попали" на gap и next-key блокировках.

Автор:  Amir [ 06 дек 2012, 00:38 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

После выполнения
Код:
ALTER TABLE `inet_session_<mid>_seq` ADD PRIMARY KEY (`id`), DROP INDEX `id`;
ALTER TABLE `inet_connection_<mid>_seq` ADD PRIMARY KEY (`id`), DROP INDEX `id`;
deadlock'и в "синтетическом" тесте пропали.

Автор:  afedorov [ 06 дек 2012, 01:12 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

PRIMARY KEY не помогли. Стоило убрать pado delay с тех bba-group, которые обрабатываются модулем Inet, как сразу же посыпались таймауты в show radius statistics и в логах BGInetAccess и BGInetAccounting навалило ошибок с локами.

Автор:  Amir [ 06 дек 2012, 01:16 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Ошибки в тех же местах? InetConnectionDao.insert()?
В индексах точно остался только PRIMARY KEY?

Автор:  Amir [ 06 дек 2012, 01:24 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Через минут 10-15 выложу обновление, в котором это удаление будет в отдельном потоке, т.е. блокировка удаления никак не должна будет влиять на обработку радиус пакетов.

Автор:  afedorov [ 06 дек 2012, 01:30 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

ошибки в аккаунтинге такие:
Код:
radius 12-05/23:07:41 ERROR [rdsLstnr-p-8-t-4] RadiusListenerWorker - Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@247501e4[Locked by thread rdsLstnr-p-8-t-21]
java.lang.RuntimeException: Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@247501e4[Locked by thread rdsLstnr-p-8-t-21]
   at ru.bitel.common.util.CheckReentrantLock.lock(CheckReentrantLock.java:46)
   at ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime.lock(ContractRuntime.java:97)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.lock(InetServRuntime.java:469)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionIfExist(InetRadiusProcessor.java:1295)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1492)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1439)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:404)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accounting(RadiusProcessor.java:517)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accountingRequest(RadiusProcessor.java:461)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:152)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:251)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.RuntimeException: OwnerThread: Thread[rdsLstnr-p-8-t-21,5,main]
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionFromServ(InetRadiusProcessor.java:1925)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1553)
   ... 14 more
radius 12-05/23:07:42 ERROR [rdsLstnr-p-8-t-12] RadiusListenerWorker - Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@d082960[Locked by thread rdsLstnr-p-8-t-9]
java.lang.RuntimeException: Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@d082960[Locked by thread rdsLstnr-p-8-t-9]
   at ru.bitel.common.util.CheckReentrantLock.lock(CheckReentrantLock.java:46)
   at ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime.lock(ContractRuntime.java:97)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.lock(InetServRuntime.java:469)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionIfExist(InetRadiusProcessor.java:1295)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1492)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1439)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:404)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accounting(RadiusProcessor.java:517)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accountingRequest(RadiusProcessor.java:461)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:152)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:251)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.RuntimeException: OwnerThread: Thread[rdsLstnr-p-8-t-9,5,main]
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.read(SocketInputStream.java:129)
   at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
   at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
   at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2549)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3002)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2991)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3532)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
   at ru.bitel.bgbilling.modules.inet.api.server.bean.InetConnectionDao.insert(InetConnectionDao.java:95)
   at ru.bitel.bgbilling.modules.inet.accounting.Accounting.newConnectionCallRuntime(Accounting.java:1029)
   at ru.bitel.bgbilling.modules.inet.accounting.Accounting.connectionCallStart(Accounting.java:1221)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.connectionCallStart(InetRadiusProcessor.java:1939)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionFromServ(InetRadiusProcessor.java:1898)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1553)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1439)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startWithParentProcess(InetNas.java:956)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionFromServ(InetRadiusProcessor.java:1925)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1553)
   ... 14 more
radius 12-05/23:07:50 ERROR [rdsLstnr-p-8-t-47] RadiusListenerWorker - Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@247501e4[Locked by thread rdsLstnr-p-8-t-21]
java.lang.RuntimeException: Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@247501e4[Locked by thread rdsLstnr-p-8-t-21]
   at ru.bitel.common.util.CheckReentrantLock.lock(CheckReentrantLock.java:46)
   at ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime.lock(ContractRuntime.java:97)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.lock(InetServRuntime.java:469)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionIfExist(InetRadiusProcessor.java:1295)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1492)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1439)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:404)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accounting(RadiusProcessor.java:517)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accountingRequest(RadiusProcessor.java:461)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:152)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:251)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.RuntimeException: OwnerThread: Thread[rdsLstnr-p-8-t-21,5,main]
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionFromServ(InetRadiusProcessor.java:1925)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1553)
   ... 14 more
radius 12-05/23:07:51 ERROR [rdsLstnr-p-8-t-31] RadiusListenerWorker - Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@d082960[Locked by thread rdsLstnr-p-8-t-9]
java.lang.RuntimeException: Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@d082960[Locked by thread rdsLstnr-p-8-t-9]
   at ru.bitel.common.util.CheckReentrantLock.lock(CheckReentrantLock.java:46)
   at ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime.lock(ContractRuntime.java:97)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.lock(InetServRuntime.java:469)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionIfExist(InetRadiusProcessor.java:1295)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1492)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1439)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:404)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accounting(RadiusProcessor.java:517)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accountingRequest(RadiusProcessor.java:461)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:152)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:251)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.RuntimeException: OwnerThread: Thread[rdsLstnr-p-8-t-9,5,main]
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.read(SocketInputStream.java:129)
   at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
   at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
   at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2549)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3002)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2991)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3532)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
   at ru.bitel.bgbilling.modules.inet.api.server.bean.InetConnectionDao.insert(InetConnectionDao.java:95)
   at ru.bitel.bgbilling.modules.inet.accounting.Accounting.newConnectionCallRuntime(Accounting.java:1029)
   at ru.bitel.bgbilling.modules.inet.accounting.Accounting.connectionCallStart(Accounting.java:1221)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.connectionCallStart(InetRadiusProcessor.java:1939)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionFromServ(InetRadiusProcessor.java:1898)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1553)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1439)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startWithParentProcess(InetNas.java:956)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionFromServ(InetRadiusProcessor.java:1925)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1553)
   ... 14 more
accounting 12-05/23:07:58 ERROR [accwrkr-1-p-14-t-3] WorkerTask - Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@d082960[Locked by thread rdsLstnr-p-8-t-9]
java.lang.RuntimeException: Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@d082960[Locked by thread rdsLstnr-p-8-t-9]
   at ru.bitel.common.util.CheckReentrantLock.lock(CheckReentrantLock.java:46)
   at ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime.lock(ContractRuntime.java:97)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.lock(InetServRuntime.java:469)
   at ru.bitel.bgbilling.modules.inet.accounting.SessionTrackingWorker.runImpl(SessionTrackingWorker.java:112)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
   at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.RuntimeException: OwnerThread: Thread[rdsLstnr-p-8-t-9,5,main]
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.read(SocketInputStream.java:129)
   at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
   at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
   at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2549)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3002)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2991)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3532)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
   at ru.bitel.bgbilling.modules.inet.api.server.bean.InetConnectionDao.insert(InetConnectionDao.java:95)
   at ru.bitel.bgbilling.modules.inet.accounting.Accounting.newConnectionCallRuntime(Accounting.java:1029)
   at ru.bitel.bgbilling.modules.inet.accounting.Accounting.connectionCallStart(Accounting.java:1221)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.connectionCallStart(InetRadiusProcessor.java:1939)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionFromServ(InetRadiusProcessor.java:1898)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1553)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1439)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startWithParentProcess(InetNas.java:956)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionFromServ(InetRadiusProcessor.java:1925)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1553)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1439)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:404)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accounting(RadiusProcessor.java:517)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accountingRequest(RadiusProcessor.java:461)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:152)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:251)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   ... 4 more
accounting 12-05/23:08:20 ERROR [accwrkr-3-p-12-t-1] WorkerTask - Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@d082960[Locked by thread rdsLstnr-p-8-t-9]
java.lang.RuntimeException: Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@d082960[Locked by thread rdsLstnr-p-8-t-9]
   at ru.bitel.common.util.CheckReentrantLock.lock(CheckReentrantLock.java:46)
   at ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime.lock(ContractRuntime.java:97)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.lock(InetServRuntime.java:469)
   at ru.bitel.bgbilling.modules.inet.accounting.SessionFinishManager.runImpl(SessionFinishManager.java:94)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
   at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
   at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.RuntimeException: OwnerThread: Thread[rdsLstnr-p-8-t-9,5,main]
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.read(SocketInputStream.java:129)
   at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
   at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
   at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2549)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3002)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2991)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3532)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
   at ru.bitel.bgbilling.modules.inet.api.server.bean.InetConnectionDao.insert(InetConnectionDao.java:95)
   at ru.bitel.bgbilling.modules.inet.accounting.Accounting.newConnectionCallRuntime(Accounting.java:1029)
   at ru.bitel.bgbilling.modules.inet.accounting.Accounting.connectionCallStart(Accounting.java:1221)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.connectionCallStart(InetRadiusProcessor.java:1939)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionFromServ(InetRadiusProcessor.java:1898)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1553)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1439)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startWithParentProcess(InetNas.java:956)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionFromServ(InetRadiusProcessor.java:1925)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1553)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1439)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:404)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accounting(RadiusProcessor.java:517)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accountingRequest(RadiusProcessor.java:461)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:152)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:251)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   ... 4 more
radius 12-05/23:08:23 ERROR [rdsLstnr-p-8-t-9] InetNas - java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
ru.bitel.bgbilling.common.BGException: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
   at ru.bitel.bgbilling.modules.inet.api.server.bean.InetConnectionDao.insert(InetConnectionDao.java:101)
   at ru.bitel.bgbilling.modules.inet.accounting.Accounting.newConnectionCallRuntime(Accounting.java:1029)
   at ru.bitel.bgbilling.modules.inet.accounting.Accounting.connectionCallStart(Accounting.java:1221)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.connectionCallStart(InetRadiusProcessor.java:1939)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionFromServ(InetRadiusProcessor.java:1898)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1553)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1439)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startWithParentProcess(InetNas.java:956)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnectionFromServ(InetRadiusProcessor.java:1925)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1553)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.getNasConnection(InetRadiusProcessor.java:1439)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:404)
   at ru.bitel.bgbilling.modules.inet.radius.InetNas.startConnection(InetNas.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accounting(RadiusProcessor.java:517)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accountingRequest(RadiusProcessor.java:461)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:152)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accountingRequest(InetRadiusListenerWorker.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:251)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
   at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
   at ru.bitel.bgbilling.modules.inet.api.server.bean.InetConnectionDao.insert(InetConnectionDao.java:95)
   ... 23 more


В InetAccess такие:
Код:
radius 12-05/23:07:51 ERROR [rdsLstnr-p-9-t-7] RadiusListenerWorker - Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@3dbdcb79[Locked by thread rdsLstnr-p-9-t-3]
java.lang.RuntimeException: Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@3dbdcb79[Locked by thread rdsLstnr-p-9-t-3]
   at ru.bitel.common.util.CheckReentrantLock.lock(CheckReentrantLock.java:46)
   at ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime.lock(ContractRuntime.java:97)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.lock(InetServRuntime.java:469)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authenticationImpl(InetRadiusProcessor.java:524)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:422)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.authentication(RadiusSession.java:115)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.accessRequest(RadiusSession.java:92)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequestImpl(RadiusProcessor.java:390)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:370)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequest(RadiusProcessor.java:377)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:58)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:213)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.RuntimeException: OwnerThread: Thread[rdsLstnr-p-9-t-3,5,main]
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.read(SocketInputStream.java:129)
   at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
   at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
   at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2549)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3002)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2991)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3532)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
   at ru.bitel.bgbilling.modules.inet.api.server.bean.InetConnectionDao.insert(InetConnectionDao.java:95)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authorization(InetRadiusProcessor.java:822)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authenticationImpl(InetRadiusProcessor.java:527)
   ... 17 more
radius 12-05/23:08:07 ERROR [rdsLstnr-p-9-t-11] RadiusListenerWorker - Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@3dbdcb79[Locked by thread rdsLstnr-p-9-t-3]
java.lang.RuntimeException: Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@3dbdcb79[Locked by thread rdsLstnr-p-9-t-3]
   at ru.bitel.common.util.CheckReentrantLock.lock(CheckReentrantLock.java:46)
   at ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime.lock(ContractRuntime.java:97)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.lock(InetServRuntime.java:469)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authenticationImpl(InetRadiusProcessor.java:524)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:422)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.authentication(RadiusSession.java:115)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.accessRequest(RadiusSession.java:92)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequestImpl(RadiusProcessor.java:390)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:370)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequest(RadiusProcessor.java:377)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:58)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:213)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.RuntimeException: OwnerThread: Thread[rdsLstnr-p-9-t-3,5,main]
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.read(SocketInputStream.java:129)
   at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
   at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
   at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2549)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3002)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2991)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3532)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
   at ru.bitel.bgbilling.modules.inet.api.server.bean.InetConnectionDao.insert(InetConnectionDao.java:95)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authorization(InetRadiusProcessor.java:822)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authenticationImpl(InetRadiusProcessor.java:527)
   ... 17 more
radius 12-05/23:08:11 ERROR [rdsLstnr-p-9-t-19] RadiusListenerWorker - Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@3a0f578c[Locked by thread rdsLstnr-p-9-t-17]
java.lang.RuntimeException: Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@3a0f578c[Locked by thread rdsLstnr-p-9-t-17]
   at ru.bitel.common.util.CheckReentrantLock.lock(CheckReentrantLock.java:46)
   at ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime.lock(ContractRuntime.java:97)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.lock(InetServRuntime.java:469)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authenticationImpl(InetRadiusProcessor.java:524)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:422)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.authentication(RadiusSession.java:115)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.accessRequest(RadiusSession.java:92)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequestImpl(RadiusProcessor.java:390)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:370)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequest(RadiusProcessor.java:377)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:58)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:213)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.RuntimeException: OwnerThread: Thread[rdsLstnr-p-9-t-17,5,main]
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.read(SocketInputStream.java:129)
   at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
   at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
   at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2549)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3002)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2991)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3532)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
   at ru.bitel.bgbilling.modules.inet.api.server.bean.InetConnectionDao.insert(InetConnectionDao.java:95)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authorization(InetRadiusProcessor.java:822)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authenticationImpl(InetRadiusProcessor.java:527)
   ... 17 more
radius 12-05/23:08:11 ERROR [rdsLstnr-p-9-t-10] RadiusListenerWorker - Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@4bfb3772[Locked by thread rdsLstnr-p-9-t-9]
java.lang.RuntimeException: Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@4bfb3772[Locked by thread rdsLstnr-p-9-t-9]
   at ru.bitel.common.util.CheckReentrantLock.lock(CheckReentrantLock.java:46)
   at ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime.lock(ContractRuntime.java:97)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.lock(InetServRuntime.java:469)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authenticationImpl(InetRadiusProcessor.java:524)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:422)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.authentication(RadiusSession.java:115)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.accessRequest(RadiusSession.java:92)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequestImpl(RadiusProcessor.java:390)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:370)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequest(RadiusProcessor.java:377)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:58)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:213)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.RuntimeException: OwnerThread: Thread[rdsLstnr-p-9-t-9,5,main]
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.read(SocketInputStream.java:129)
   at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
   at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
   at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2549)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3002)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2991)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3532)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
   at ru.bitel.bgbilling.modules.inet.api.server.bean.InetConnectionDao.insert(InetConnectionDao.java:95)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authorization(InetRadiusProcessor.java:822)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authenticationImpl(InetRadiusProcessor.java:527)
   ... 17 more
radius 12-05/23:08:17 ERROR [rdsLstnr-p-9-t-15] RadiusListenerWorker - Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@492951af[Locked by thread rdsLstnr-p-9-t-13]
java.lang.RuntimeException: Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@492951af[Locked by thread rdsLstnr-p-9-t-13]
   at ru.bitel.common.util.CheckReentrantLock.lock(CheckReentrantLock.java:46)
   at ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime.lock(ContractRuntime.java:97)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.lock(InetServRuntime.java:469)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authenticationImpl(InetRadiusProcessor.java:524)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:422)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.authentication(RadiusSession.java:115)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.accessRequest(RadiusSession.java:92)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequestImpl(RadiusProcessor.java:390)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:370)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequest(RadiusProcessor.java:377)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:58)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:213)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.RuntimeException: OwnerThread: Thread[rdsLstnr-p-9-t-13,5,main]
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.read(SocketInputStream.java:129)
   at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
   at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
   at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2549)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3002)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2991)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3532)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
   at ru.bitel.bgbilling.modules.inet.api.server.bean.InetConnectionDao.insert(InetConnectionDao.java:95)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authorization(InetRadiusProcessor.java:822)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authenticationImpl(InetRadiusProcessor.java:527)
   ... 17 more
mq 12-05/23:08:18 ERROR [event-proc-p-2-t-1] Consumer - Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@78e4cf1a[Locked by thread rdsLstnr-p-9-t-1]
java.lang.RuntimeException: Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@78e4cf1a[Locked by thread rdsLstnr-p-9-t-1]
   at ru.bitel.common.util.CheckReentrantLock.lock(CheckReentrantLock.java:46)
   at ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime.lock(ContractRuntime.java:97)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.lock(InetServRuntime.java:469)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntimeMap.onAccoutingPeriodModified(InetServRuntimeMap.java:744)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntimeMap.notify(InetServRuntimeMap.java:586)
   at ru.bitel.bgbilling.kernel.event.AbstractConsumer.notify(AbstractConsumer.java:344)
   at ru.bitel.bgbilling.kernel.event.Consumer.notify(Consumer.java:1)
   at ru.bitel.bgbilling.kernel.event.Consumer.onMessage0(Consumer.java:91)
   at ru.bitel.bgbilling.kernel.event.Consumer$EventListenerRunnable.runImpl(Consumer.java:51)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.RuntimeException: OwnerThread: Thread[rdsLstnr-p-9-t-1,5,main]
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.read(SocketInputStream.java:129)
   at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
   at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
   at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2549)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3002)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2991)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3532)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
   at ru.bitel.bgbilling.modules.inet.api.server.bean.InetConnectionDao.insert(InetConnectionDao.java:95)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authorization(InetRadiusProcessor.java:822)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authenticationImpl(InetRadiusProcessor.java:527)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:422)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.authentication(RadiusSession.java:115)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.accessRequest(RadiusSession.java:92)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequestImpl(RadiusProcessor.java:390)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:370)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequest(RadiusProcessor.java:377)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:58)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:213)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
   ... 5 more
radius 12-05/23:08:20 ERROR [rdsLstnr-p-9-t-14] RadiusListenerWorker - Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@492951af[Locked by thread rdsLstnr-p-9-t-13]
java.lang.RuntimeException: Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@492951af[Locked by thread rdsLstnr-p-9-t-13]
   at ru.bitel.common.util.CheckReentrantLock.lock(CheckReentrantLock.java:46)
   at ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime.lock(ContractRuntime.java:97)
   at ru.bitel.bgbilling.modules.inet.runtime.InetServRuntime.lock(InetServRuntime.java:469)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authenticationImpl(InetRadiusProcessor.java:524)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:422)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authentication(InetRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.authentication(RadiusSession.java:115)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.accessRequest(RadiusSession.java:92)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequestImpl(RadiusProcessor.java:390)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:370)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.accessRequestImpl(InetRadiusProcessor.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequest(RadiusProcessor.java:377)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:58)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusListenerWorker.accessRequest(InetRadiusListenerWorker.java:1)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:213)
   at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:135)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: java.lang.RuntimeException: OwnerThread: Thread[rdsLstnr-p-9-t-13,5,main]
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.read(SocketInputStream.java:129)
   at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
   at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
   at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2549)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3002)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2991)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3532)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2427)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2345)
   at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2330)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
   at ru.bitel.bgbilling.modules.inet.api.server.bean.InetConnectionDao.insert(InetConnectionDao.java:95)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authorization(InetRadiusProcessor.java:822)
   at ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor.authenticationImpl(InetRadiusProcessor.java:527)
   ... 17 more

Автор:  Amir [ 06 дек 2012, 01:57 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Выложили обновление.
Обновляется база на PRIMARY KEY и меняется логика в InetConnectionDao.insert (DELETE FROM inet_connection_<mid>_seq WHERE id<? происходит в отдельном потоке/отдельной транзакции).
Если необходимо проверить только второе и обновлялись не так давно - должно быть достаточно заменить inet.jar в Access/Accounting той, что в новой сборке.

Не забудьте сделать бекап старых библиотек.

Автор:  afedorov [ 06 дек 2012, 02:05 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Видимо давно обновлялись, т.к. при замене только inet.jar запуск обламывается ошибкой
Код:
Error on node accounting
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at ru.bitel.bgbilling.kernel.application.server.Application.processBean(Application.java:471)
        at ru.bitel.bgbilling.kernel.application.server.Application.process(Application.java:286)
        at ru.bitel.bgbilling.kernel.application.server.Application.processChildren(Application.java:688)
        at ru.bitel.bgbilling.kernel.application.server.Application.application(Application.java:218)
        at ru.bitel.bgbilling.kernel.application.server.Application.<init>(Application.java:154)
        at ru.bitel.bgbilling.kernel.application.server.Application.main(Application.java:742)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at ru.bitel.common.bootstrap.Boot.boot(Boot.java:129)
        at ru.bitel.common.bootstrap.Boot.main(Boot.java:178)
Caused by: java.lang.NoSuchMethodError: ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntimeMap.<init>(Ljava/util/Date;Z)V
        at ru.bitel.bgbilling.modules.inet.accounting.Accounting.<init>(Accounting.java:179)
        at ru.bitel.bgbilling.modules.inet.accounting.Accounting.<init>(Accounting.java:158)
        ... 16 more


Полноценно обновиться можно будет только завтра.

Автор:  afedorov [ 06 дек 2012, 04:30 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Прежде чем обновляться, можно добавить отладку в Inet, чтобы в лог писались начало и конец insert и delete операций по *_seq таблицам с указанием типа операции, таблицы, таймстампа и в каком треде это делается?
Это поможет понять когда и на каких операциях происходят эти тормоза.
По умолчанию чтоб эта отладка была выключена и включалась параметром в конфиге модуля.

Автор:  Cromeshnic [ 06 дек 2012, 07:39 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

afedorov писал(а):
Такое решение рассматривали? http://engineering.twitter.com/2010/06/ ... flake.html


оттуда:
Цитата:
SOLUTION

To generate the roughly-sorted 64 bit ids in an uncoordinated manner, we settled on a composition of: timestamp, worker number and sequence number.

Sequence numbers are per-thread and worker numbers are chosen at startup via zookeeper (though that’s overridable via a config file).


Может есть смысл похожим образом сделать?
Т.е. чтобы id составной был, например: id сервера InetAccounting + x + внутренний id.
Где:
x - счетчик перезапусков сервера InetAccounting
id - хранится в памяти конкретного InetAccounting, обнуляется при старте.

Автор:  Cromeshnic [ 06 дек 2012, 08:00 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Иначе какой смысл в нескольких InetAccounting-серверах, если узким местом как был, так и остаётся mysql.
В dialup в данный момент больше всего напрягает как раз ненадёжность при работе с нагрузками:
- какие-нибудь запросы грузят базу mysql - радиус начинает тормозить, теряются пакеты acct, а иногда и auth.
- произошло массовое подключение клиентов (восстановление после аварии, month break) - радиус не справляется, авторизация не поспевает

И узкое место - всегда mysql, т.к. радиусы слишком зависят от него. Пришёл update - мы идём в базу, конкурируем на запись в одну таблицу для всего модуля. Запрос авторизации - перед ответом мы должны создать сессию в таблице, снова конкуренция.
При этом mysql никак не масштабируется. Ну, т.е. есть slave, есть trash, но это тоже не масштабируемые решения, т.к. главный сервер и одна таблица to rule them all всё равно никуда не уходят.

В Inet детально не разбирался с механизмом, но вроде бы там трафики пишутся не сразу, а сбрасываются в базу периодически, я прав? Это уже хорошо. Но авторизация гораздо критичнее. Лучше я дам клиенту доступ, возможно потеряв информацию о сессии, чем сотни клиентов будут сидеть без инета (а проблемы будут у всех, т.к. шардинга нет). У нас сейчас настроено, что при глюках радиуса циски выдают авторизацию для клиентов из собственного кэша - сессии поднимаются вне биллинга, но хотя бы поднимаются. Потом скриптом проходим и сбрасываем всех таких (тут в Inet проще, т.к. он умеет создавать сессии по апдейтам).

Автор:  Cromeshnic [ 06 дек 2012, 08:03 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

FYI:
кстати, про month break - отказались от стандартного, даже улучшенного, т.к. он сначала сбрасывает быстро, а потом замедляется, а не наоборот. Вместо этого сбрасываем скриптом с фиксированной задержкой.

Автор:  Cromeshnic [ 06 дек 2012, 08:59 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Как вариант распределения нагрузки, можно разбить месячные таблицы - например, по таблице на каждый accounting-сервер. Или даже на каждый NAS.
Потом можно растащить эти таблицы по разным mysql-серверам, т.е. сделать вертикальный шардинг.
Правда тогда не получится их слить в один slave, нужно будет писать хелперы для построения отчётов и пр.
Но если это делать, то нужно делать сейчас, пока ещё мало кто пользуется Inet и он не оброс всякими отчётами и скриптами, где производятся выборки из inet_session_log и т.п.

Про шардинг и пр.:
http://highload.com.ua/index.php/2009/0 ... %B0%D1%86/

Кстати, trash-базы - это в чистом виде вертикальный шардинг. Круто, но только для некритичных данных. К тому же, идёт мимо слейва.

Автор:  vkulakov [ 06 дек 2012, 11:30 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Поддерживаю идею переноса счётчика в память и сделать его составным. При рестарте его можно получать как MAX(id) из таблиц текущих соединений/сессий. Такую схему реализовать не так сложно.

Автор:  vkulakov [ 06 дек 2012, 11:31 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Также замечу, что последние ошибки имели вид:
Код:
accounting 12-05/23:08:20 ERROR [accwrkr-3-p-12-t-1] WorkerTask - Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@d082960[Locked by thread rdsLstnr-p-8-t-9]
java.lang.RuntimeException: Lock wait timeout for ru.bitel.bgbilling.kernel.contract.runtime.ContractRuntime@d082960[Locked by thread rdsLstnr-p-8-t-9]

Вроде напрямую с MySQL не связаны.

Автор:  Amir [ 06 дек 2012, 12:56 ]
Заголовок сообщения:  Re: Lock wait timeout в логах

Цитата:
Также замечу, что последние ошибки имели вид:
Связано косвенно, т.к. внутри приложения также есть синхронизация по договорам - одновременно в разных потоках radius-пакет одной и той же сессии/сервиса не обрабатывается.
С последним билдом ошибка ушла?

Страница 1 из 3 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/