forum.bitel.ru http://forum.bitel.ru/ |
|
[7.0] Deadlock found http://forum.bitel.ru/viewtopic.php?f=18&t=12564 |
Страница 1 из 1 |
Автор: | Dog [ 31 июл 2017, 21:30 ] |
Заголовок сообщения: | [7.0] Deadlock found |
При попытке открыть модуль в клиенте - выдает ошибку. Договора не ищет, платежи не ходят. Код: u.bitel.bgbilling.common.BGException: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.sun.xml.ws.fault.SOAPFaultBuilder.createUserDefinedException(SOAPFaultBuilder.java:318) at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:139) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:123) at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:93) at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:144) at com.sun.proxy.$Proxy37.searchTransactions(Unknown Source) at ru.bitel.bgbilling.modules.mps.client.TransactionPanel$1.actionPerformedImpl(TransactionPanel.java:55) at ru.bitel.common.client.AbstractBGUPanel.actionPerformed(AbstractBGUPanel.java:237) at ru.bitel.common.client.AbstractBGUPanel$DefaultAction.actionPerformed(AbstractBGUPanel.java:91) at ru.bitel.common.client.AbstractBGUPanel.performAction(AbstractBGUPanel.java:541) at ru.bitel.common.client.AbstractBGUPanel.performAction(AbstractBGUPanel.java:522) at ru.bitel.common.client.AbstractBGUPanel.performAction(AbstractBGUPanel.java:517) at ru.bitel.bgbilling.modules.mps.client.ServicePropertiesPanel.setData(ServicePropertiesPanel.java:29) at bitel.billing.module.contract.ContractSubPanel_Module.setData(ContractSubPanel_Module.java:165) at bitel.billing.module.contract.ContractPanel_Parameters$5.run(ContractPanel_Parameters.java:650) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Код: Информация о версии:
Клиент: вер. 7.0.871 / 16.02.2017 20:14:41 os: Windows 10; java: Java HotSpot(TM) Client VM, v.1.8.0_121 Сервер: вер. 7.0.1194 / 16.02.2017 20:16:11 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45 bill: вер. 7.0.113 / 16.02.2017 19:54:44 card: вер. 7.0.40 / 22.08.2016 16:40:03 dialup: вер. 7.0.319 / 29.08.2016 16:38:40 drweb: вер. 7.0.73 / 08.04.2016 17:40:40 inet: вер. 7.0.727 / 16.02.2017 19:54:16 ipn: вер. 7.0.264 / 08.01.2017 19:16:17 mps: вер. 7.0.207 / 03.02.2017 20:14:10 npay: вер. 7.0.204 / 01.02.2017 19:44:28 paymaster: вер. 7.0.63 / 31.01.2017 19:41:50 rentsoft: вер. 7.0.66 / 24.11.2016 20:07:12 reports: вер. 7.0.228 / 06.02.2017 14:32:13 rscm: вер. 7.0.184 / 10.02.2017 13:51:11 ru.bitel.bgbilling.plugins.bonus: вер. 7.0.128 / 24.11.2016 20:05:19 ru.bitel.bgbilling.plugins.crm: вер. 7.0.198 / 07.11.2016 18:45:32 ru.bitel.bgbilling.plugins.dispatch: вер. 7.0.92 / 25.01.2017 17:01:23 sberbank: вер. 7.0.59 / 17.02.2017 18:52:43 trayinfo: вер. 7.0.175 / 10.06.2016 17:00:23 tv: вер. 7.0.239 / 30.11.2016 18:20:31 Окружение: Клиент: os: Windows 10 x86, 10.0 java: Java HotSpot(TM) Client VM, v.1.8.0_121 jre home: C:\Program Files (x86)\Java\jre1.8.0_121 memory (use/total/max): 27M/57M/247M default tz: 31.07.2017 18:29 MSK +0300 (Europe/Moscow) user tz: 31.07.2017 18:29 MSK +0300 (Europe/Moscow) locale: ru_RU Сервер: os: Linux amd64, 3.10.0-514.26.2.el7.x86_64 java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45 jre home: /usr/java/jdk1.8.0_45/jre default tz: 31.07.2017 18:29 MSK +0300 (Europe/Moscow) memory (use/total/max): 450M/806M/1820M db time: master: 31.07.2017 18:29 MSK db charset: connection: cp1251(cp1251_general_ci), database: cp1251(cp1251_general_ci) locale: en_US uptime: Started: 31.07.2017 18:17:03 Uptime: 0 d 00:12:38 Третьи стороны: Fugue Icons. Copyright © 2011 Yusuke Kamiyamane. All rights reserved. http://p.yusukekamiyamane.com/ Silk icon set. Copyright © Mark James. All rights reserved. http://www.famfamfam.com/lab/icons/silk/ |
Автор: | Dog [ 31 июл 2017, 21:30 ] |
Заголовок сообщения: | Re: [7.0] Deadlock found |
обновлять? или лекарства еще не придумано? |
Автор: | Dog [ 31 июл 2017, 22:05 ] |
Заголовок сообщения: | Re: [7.0] Deadlock found |
поправка - платежи ходят. не открывается модуль. ни через меню, ни через договор |
Автор: | Dog [ 01 авг 2017, 01:35 ] |
Заголовок сообщения: | Re: [7.0] Deadlock found |
в логах сервера есть еще вот такое: Код: server 07-31/22:29:50 ERROR [http-bio-0.0.0.0-8080-exec-23] AbstractJaxWsHandler -
java.lang.reflect.InvocationTargetException at ru.bitel.bgbilling.kernel.container.service.server.ServiceInfo.invoke(ServiceInfo.java:118) at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke0(AbstractJaxWsHandler.java:229) at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.access$000(AbstractJaxWsHandler.java:47) at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler$1.run(AbstractJaxWsHandler.java:276) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke(AbstractJaxWsHandler.java:270) at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.invoke(JaxWsHandler.java:315) at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler$ServiceInstanceResolver$1.invoke(AbstractJaxWsHandler.java:375) at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:150) at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:261) at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100) at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641) at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600) at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585) at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482) at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:314) at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:608) at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:259) at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:162) at ru.bitel.bgbilling.kernel.container.ws.server.JaxWSAdapter.handle(JaxWSAdapter.java:290) at bitel.billing.server.Executer.doPost(SourceFile:163) at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: ru.bitel.bgbilling.common.BGException: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction at ru.bitel.common.sql.ConnectionSet.commit(ConnectionSet.java:198) at ru.bitel.bgbilling.kernel.container.managed.ServerContext.commit(ServerContext.java:289) at ru.bitel.bgbilling.kernel.container.service.server.ServiceInfo.invoke(ServiceInfo.java:103) ... 40 more Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at com.mysql.jdbc.Util.handleNewInstance(Util.java:404) at com.mysql.jdbc.Util.getInstance(Util.java:387) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3878) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2478) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2625) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2547) at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1616) at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:334) at ru.bitel.bgbilling.server.util.PoolGuardConnectionWrapper.commit(PoolGuardConnectionWrapper.java:74) at ru.bitel.common.sql.ConnectionSet.commit(ConnectionSet.java:175) ... 42 more |
Автор: | skn [ 01 авг 2017, 12:05 ] |
Заголовок сообщения: | Re: [7.0] Deadlock found |
на тестовой БД проблема не воспроизводится... попробуйте обновить до последних сборок... возможно проблема с БД, какая у вас конфигурация БД простая или какая нибудь сложная с несколькими БД, типа мастер-слейв. в этом запросе используется схема с созданием временной таблицы, копированием данных в нее и затем выборка по этой временной таблице, возможно не хватает каких нибудь прав в БД посмотрите еще логи самого mysql возможно там есть что нибудь |
Автор: | Dog [ 01 авг 2017, 14:56 ] |
Заголовок сообщения: | Re: [7.0] Deadlock found |
в логе MySQL ошибок не видно, которые явно указывали на dedlock Код: 10.2.7-MariaDB-log Код: [server] [mysqld] sql_mode = skip-name-resolve #log_bin_basename = /mnt/nfs_vol/vm-billing-db1/mysql/mysql-bin #log_bin_index = /mnt/nfs_vol/vm-billing-db1/mysql/mysql-bin.index log_bin = mysql-bin log_error = mysql.err log_warnings = 1 character_set_server=utf8 collation_server=utf8_unicode_ci table_open_cache = 2000 binlog_cache_size = 16M performance_schema = 1 # FROM OLD SERVER max_allowed_packet = 100M max_connections = 600 table_cache = 4096 thread_cache_size = 300 thread_concurrency = 4 # join_buffer_size = 128M innodb_buffer_pool_size = 12G innodb_log_files_in_group = 3 innodb_log_file_size = 1G innodb_log_buffer_size = 8M innodb_lock_wait_timeout = 120 innodb_thread_concurrency = 2 innodb_flush_method = O_DIRECT innodb_buffer_pool_instances = 16 [galera] binlog_format = ROW default-storage-engine = innodb innodb_autoinc_lock_mode = 2 innodb_locks_unsafe_for_binlog = 1 query_cache_size = 0 query_cache_type = 0 bind-address = 0.0.0.0 datadir = /var/lib/mysql innodb_file_per_table innodb_flush_log_at_trx_commit = 0 wsrep_provider = /usr/lib64/galera/libgalera_smm.so wsrep_cluster_address = 'gcomm://10.201.0.21,10.201.0.22' wsrep_cluster_name = 'galera_cluster' wsrep_node_address = '10.201.0.21' wsrep_node_name = 'vm-billing-db1' wsrep_sst_method = rsync wsrep_sst_auth = sstuser:sstuserpass wsrep_on = ON wsrep_slave_threads = 8 [embedded] [mariadb] [mariadb-10.1] крутится 3 базы данных внутри - bgbilling, bgcrm, инвентори |
Автор: | Dog [ 01 авг 2017, 15:01 ] |
Заголовок сообщения: | Re: [7.0] Deadlock found |
как раз совпало с переездом на новую базу данных и новый сервер для прложений. |
Автор: | Dog [ 01 авг 2017, 15:04 ] |
Заголовок сообщения: | Re: [7.0] Deadlock found |
в схеме с базой данных - есть две ноды в кластере, постоянная работа только с одной из них, вторая висит в бэкапе |
Автор: | stark [ 01 авг 2017, 15:07 ] |
Заголовок сообщения: | Re: [7.0] Deadlock found |
Нужен вывод : "show engine innodb status" |
Автор: | Dog [ 01 авг 2017, 15:15 ] |
Заголовок сообщения: | Re: [7.0] Deadlock found |
Вложение:
|
Автор: | stark [ 01 авг 2017, 15:21 ] |
Заголовок сообщения: | Re: [7.0] Deadlock found |
На этом сервере mysql не было дедлоков. Или там реально не было, иди вы его перезагрузили с тех пор. С учетом что у вас galera возможно deadlock произошел на другом сервере. Еще смутно помню в ТП была тема, при схеме master-master темповые таблицы создавались на обоих серверах и это порождало проблему при переобсчете inet. |
Автор: | Dog [ 01 авг 2017, 17:08 ] |
Заголовок сообщения: | Re: [7.0] Deadlock found |
на втором сервере тоже нет deadlock'ов. воспроизвёл ошибку, посмотрел в show engine innodb status и нет строк указывающих на произошедший дедлок на обоих серверах. где же они возникают? |
Автор: | Amir [ 01 авг 2017, 18:10 ] |
Заголовок сообщения: | Re: [7.0] Deadlock found |
Похоже в самой galera. Тут что-то очень похожее: https://bugs.launchpad.net/percona-xtra ... ug/1240098 Попробуем переделать, чтобы в данном месте не было CREATE TEMOPORARY TABLE SELECT. |
Автор: | Dog [ 01 авг 2017, 18:32 ] |
Заголовок сообщения: | Re: [7.0] Deadlock found |
а это вообще как то на функциональсть влияет (кроме отображения в клиенте)? есть ли еще подобные конструкции которые могут вызвать дедлок? |
Автор: | skn [ 02 авг 2017, 17:34 ] |
Заголовок сообщения: | Re: [7.0] Deadlock found |
Dog писал(а): а это вообще как то на функциональсть влияет (кроме отображения в клиенте)? сложно сказать, мы не тестировали такую связку и другие клиенты вроде тоже не используют, по крайней мере ни кто не жаловался Dog писал(а): есть ли еще подобные конструкции которые могут вызвать дедлок? не известно, код на такие конструкции не проверялся... |
Автор: | Amir [ 02 авг 2017, 17:39 ] |
Заголовок сообщения: | Re: [7.0] Deadlock found |
Этот вызов используется только для построения отчета в клиенте. Поиском нашел, что такая конструкция есть еще в задаче "Валидация", но возможно что-то упустил. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |