forum.bitel.ru http://forum.bitel.ru/ |
|
[BUG] "Lock wait timeout" при переобсчёте Inet (CRM) http://forum.bitel.ru/viewtopic.php?f=44&t=12202 |
Страница 1 из 1 |
Автор: | Cromeshnic [ 11 янв 2017, 09:48 ] |
Заголовок сообщения: | [BUG] "Lock wait timeout" при переобсчёте Inet |
Привет. 01.01.2017 запустили в 06:30 переобсчёт сессий модуля Inet за прошлый месяц. Он успешно отрапортовал в почту, что выполнился, но по факту в обоих аккаунтинг-серверах отвалился по таймауту: Код: 01-01/06:30:13 INFO [pool-5-thread-1] SessionRecalculateTarifficationManager - starting ru.bitel.bgbilling.modules.inet.accounting.recalculate.SessionRecalculateTarifficationManager 01-01/06:32:05 ERROR [pool-5-thread-1] SessionRecalculateTarifficationManager - 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.accounting.recalculate.SessionRecalculateTarifficationManager.flushSession(SessionRecalculateTarifficationManager.java:902) at ru.bitel.bgbilling.modules.inet.accounting.recalculate.SessionRecalculateTarifficationManager.recalculate(SessionRecalculateTarifficationManager.java:338) at ru.bitel.bgbilling.modules.inet.accounting.recalculate.SessionRecalculateTarifficationManager.run(SessionRecalculateTarifficationManager.java:175) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) 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) 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.accounting.recalculate.SessionRecalculateTarifficationManager.updateSessionCostAndTime(SessionRecalculateTarifficationManager.java:943) at ru.bitel.bgbilling.modules.inet.accounting.recalculate.SessionRecalculateTarifficationManager.flushSession(SessionRecalculateTarifficationManager.java:893) ... 8 more 01-01/06:33:59 ERROR [pool-16-thread-1] SessionRecalculateTarifficationManager - 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.accounting.recalculate.SessionRecalculateTarifficationManager.flushSession(SessionRecalculateTarifficationManager.java:902) at ru.bitel.bgbilling.modules.inet.accounting.recalculate.SessionRecalculateTarifficationManager.recalculate(SessionRecalculateTarifficationManager.java:338) at ru.bitel.bgbilling.modules.inet.accounting.recalculate.SessionRecalculateTarifficationManager.run(SessionRecalculateTarifficationManager.java:175) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) 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) 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.accounting.recalculate.SessionRecalculateTarifficationManager.updateSessionCostAndTime(SessionRecalculateTarifficationManager.java:943) at ru.bitel.bgbilling.modules.inet.accounting.recalculate.SessionRecalculateTarifficationManager.flushSession(SessionRecalculateTarifficationManager.java:893) ... 8 more --------- 01-01/06:33:07 INFO [pool-16-thread-1] InetServRuntimeMap - Removing InetServRuntime: 11587 01-01/06:33:07 INFO [pool-16-thread-1] InetServRuntimeMap - Removing InetServRuntime: 2252 01-01/06:33:08 INFO [pool-16-thread-1] InetServRuntimeMap - Removing InetServRuntime: 887 01-01/06:33:08 INFO [pool-16-thread-1] InetServRuntimeMap - Removing InetServRuntime: 895 01-01/06:33:59 ERROR [pool-16-thread-1] SessionRecalculateTarifficationManager - 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.accounting.recalculate.SessionRecalculateTarifficationManager.flushSession(SessionRecalculateTarifficationManager.java:902) at ru.bitel.bgbilling.modules.inet.accounting.recalculate.SessionRecalculateTarifficationManager.recalculate(SessionRecalculateTarifficationManager.java:338) at ru.bitel.bgbilling.modules.inet.accounting.recalculate.SessionRecalculateTarifficationManager.run(SessionRecalculateTarifficationManager.java:175) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) 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) 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.accounting.recalculate.SessionRecalculateTarifficationManager.updateSessionCostAndTime(SessionRecalculateTarifficationManager.java:943) at ru.bitel.bgbilling.modules.inet.accounting.recalculate.SessionRecalculateTarifficationManager.flushSession(SessionRecalculateTarifficationManager.java:893) ... 8 more В результате VPN не пересчитался и некоторым клиентам приходится перевыставлять счета (кому в конце месяца меняли тарифы с трафиковых на безлимитные задним числом). Сервер: вер. 5.2 сборка 1645 от 16.08.2016 17:11:56 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_26 inet вер. 5.2 сборка 1382 от 25.05.2016 12:23:23 |
Автор: | stark [ 11 янв 2017, 17:58 ] |
Заголовок сообщения: | Re: [BUG] "Lock wait timeout" при переобсчёте Inet (CRM) |
Пожалуйста создайте тему в helpdesk. Доступ так так то есть вроде, смотрю. Но нет доступа для клиента биллинга. |
Автор: | Cromeshnic [ 11 янв 2017, 18:01 ] |
Заголовок сообщения: | Re: [BUG] "Lock wait timeout" при переобсчёте Inet (CRM) |
Ок, завтра сделаю. И по предыдущей тоже. |
Автор: | stark [ 11 янв 2017, 20:24 ] |
Заголовок сообщения: | Re: [BUG] "Lock wait timeout" при переобсчёте Inet (CRM) |
Исправил так, чтобы если происходит ошибка, то в сообщении на email будут об этом сообщать. Пока не выкладывали, возможно будут еще какие-то исправления. |
Автор: | stark [ 11 янв 2017, 20:50 ] |
Заголовок сообщения: | Re: [BUG] "Lock wait timeout" при переобсчёте Inet (CRM) |
Там у вас оба модуля упали. Ситуация там такая: 1) Запустили переобсчет в модуле с id 30. Его делали 5-ий и 6-ой accounting-сервера. Код: 01-01/06:29:48 INFO [pool-1-thread-4] InetRecalculator - init application ids: 5,6 При этом 5-ый как видно из вашего лога упал как раз в 06:32:05, а 6-ой в 06:33:59.01-01/06:29:49 INFO [pool-1-thread-4] InetRecalculator - available application ids: 5,6 01-01/06:29:49 INFO [pool-1-thread-4] InetRecalculator - real calculate application ids: 5,6 01-01/06:29:49 INFO [pool-1-thread-4] InetRecalculator - executing calulatePastMonth 01-01/06:32:05 INFO [event-proc-p-2-t-1] InetRecalculateResponseEventProcessor - get respone from applicationId=5, requestIndex = 261 01-01/06:33:59 INFO [event-proc-p-2-t-1] InetRecalculateResponseEventProcessor - get respone from applicationId=6, requestIndex = 262 01-01/06:33:59 INFO [pool-1-thread-4] InetRecalculator - calulatePastMonth end 01-01/06:34:00 INFO [pool-1-thread-4] InetRecalculator - RunTask finished time=251136 ms. 2) Запустили переобсчет в модуле с id 28. Его делали 3-ий и 8-ой accounting-сервера. Код: 01-01/06:34:00 INFO [pool-1-thread-4] InetRecalculator - init application ids: 3,8 01-01/06:34:00 INFO [pool-1-thread-4] InetRecalculator - available application ids: 3,8 01-01/06:34:00 INFO [pool-1-thread-4] InetRecalculator - real calculate application ids: 3,8 01-01/06:34:00 INFO [pool-1-thread-4] InetRecalculator - executing calulatePastMonth 01-01/06:37:35 INFO [event-proc-p-2-t-1] InetRecalculateResponseEventProcessor - get respone from applicationId=8, requestIndex = 264 01-01/06:37:36 INFO [event-proc-p-2-t-1] InetRecalculateResponseEventProcessor - get respone from applicationId=3, requestIndex = 263 01-01/06:37:36 INFO [pool-1-thread-4] InetRecalculator - calulatePastMonth end 01-01/06:37:36 INFO [pool-1-thread-4] InetRecalculator - RunTask finished time=216383 ms. При этом 8-ой упал в Код: recalculate 01-01/06:37:35 ERROR [pool-9-thread-1] SessionRecalculateTarifficationManager - 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.accounting.recalculate.SessionRecalculateTarifficationManager.flushSession(SessionRecalculateTarifficationManager.java:902) at ru.bitel.bgbilling.modules.inet.accounting.recalculate.SessionRecalculateTarifficationManager.recalculate(SessionRecalculateTarifficationManager.java:338) at ru.bitel.bgbilling.modules.inet.accounting.recalculate.SessionRecalculateTarifficationManager.run(SessionRecalculateTarifficationManager.java:175) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) 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) 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.accounting.recalculate.SessionRecalculateTarifficationManager.updateSessionCostAndTime(SessionRecalculateTarifficationManager.java:943) at ru.bitel.bgbilling.modules.inet.accounting.recalculate.SessionRecalculateTarifficationManager.flushSession(SessionRecalculateTarifficationManager.java:893) ... 8 more А 3-тий вроде как не падал и судя по логу и закончил в 06:37:36. |
Автор: | stark [ 12 янв 2017, 17:04 ] |
Заголовок сообщения: | Re: [BUG] "Lock wait timeout" при переобсчёте Inet (CRM) |
Обновление выложено, сейчас как минимум сообщение об ошибке будет в письме. |
Автор: | stark [ 12 янв 2017, 17:55 ] |
Заголовок сообщения: | Re: [BUG] "Lock wait timeout" при переобсчёте Inet (CRM) |
Если в следующий раз подобное повториться, то лучше снять и сохранить Код: SHOW ENGINE INNODB STATUS\G
|
Автор: | Cromeshnic [ 01 мар 2017, 10:02 ] |
Заголовок сообщения: | Re: [BUG] "Lock wait timeout" при переобсчёте Inet (CRM) |
Сделал тему в HD: 6645 |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |