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 в логах |
В интернете рекомендуют оптимизировать свой код. ![]() |
Автор: | 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, которая, по всей видимости, используется для генерирования уникальных идентификаторов сессий. Многочисленные потоки и сервера (?) добавляют и удаляют данные из этой таблицы при авторизации абонентов и, соответственно, устанавливают блокировки. Когда происходит очень много подключений в единицу времени эти блокировки "перекрываются" (с учётом таймаута) и возникает ошибка, которая, возможно, приводит к отбрасыванию соединения - это очень плохо. В InnoDB, как оказалось поле auto_increment после рестарта MySQL каждый раз инициализируется заново, как MAX(id), что не логично и не удобно, т.к. при переносе соединения в таблицу-лог в inet_connection может остаться соединение с меньшим id и после перезагрузки MySQL появится соединение с дублирующимся id. Счетчик в памяти нельзя использовать, т.к. InetAccounting-ов может быть несколько. Вообще, такой механизм генерирования уникальных идентификаторов сложно назвать удачным - mysql для такой операции слишком избыточен. Здесь бы следовало использовать счётчик в памяти и мютексы (ну или как там это называется). На крайний случай можно использовать NoSQL базы - всё лучше чем MySQL. 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: Он используется сейчас в модуле MPS. Но по тестам он в транзакции блокирует до коммита (т.е. UPDATE sequence SET id=LAST_INSERT_ID(id+1) ждет пока не будет закончена другая транзакция с этой же командой), чего не делает auto_increment.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()”. Поэтому применили измененный вариант, который по тестам в параллельных потоках отрабатывал эффективнее(конкурентнее): Код: INSERT INTO inet_connection_<mid>_seq (id) VALUES (NULL) В последнем билде поменяли 100 и 500 на 1000 и 1000.
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(); } |
Автор: | 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`; deadlock'и в "синтетическом" тесте пропали.
ALTER TABLE `inet_connection_<mid>_seq` ADD PRIMARY KEY (`id`), DROP INDEX `id`; |
Автор: | 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/ |