批量更新数据,重复提交(不同的人点击同一个文件,更新同一批数据)出现的死锁
报错信息
1 2019-11-19 13:45:40.062 INFO [service-repay,0b5978da87c17e54,0b5978da87c17e54,false] 25292 --- [nio-8888-exec-1] o.s.b.f.xml.XmlBeanDefinitionReader : Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml] 2 com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction 3 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 4 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 5 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 6 at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 7 at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) 8 at com.mysql.jdbc.Util.getInstance(Util.java:408) 9 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:952) 10 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3978) 11 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3914) 12 at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530) 13 at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683) 14 at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2495) 15 at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1903) 16 at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1242) 17 at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source) 18 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 19 at java.lang.reflect.Method.invoke(Method.java:498) 20 at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114) 21 at com.sun.proxy.$Proxy204.execute(Unknown Source) 22 at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source) 23 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 24 at java.lang.reflect.Method.invoke(Method.java:498) 25 at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59) 26 at com.sun.proxy.$Proxy205.execute(Unknown Source) 27 at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47) 28 at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74) 29 at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source) 30 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 31 at java.lang.reflect.Method.invoke(Method.java:498) 32 at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63) 33 at com.sun.proxy.$Proxy202.update(Unknown Source) 34 at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doUpdate(MybatisSimpleExecutor.java:54) 35 at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) 36 at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76) 37 at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197) 38 at sun.reflect.GeneratedMethodAccessor206.invoke(Unknown Source) 39 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 40 at java.lang.reflect.Method.invoke(Method.java:498) 41 at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426) 42 at com.sun.proxy.$Proxy111.update(Unknown Source) 43 at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:287) 44 at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:63) 45 at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:62) 46 at com.sun.proxy.$Proxy127.update(Unknown Source) 47 at com.cfam.service.impl.UploadFileServiceImpl.updateFileBank(UploadFileServiceImpl.java:427) 48 at com.cfam.service.impl.UploadFileServiceImpl.submitFile(UploadFileServiceImpl.java:298) 49 at com.cfam.controller.UploadFileBankController.submitFile(UploadFileBankController.java:170) 50 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 51 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 52 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 53 at java.lang.reflect.Method.invoke(Method.java:498) 54 at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) 55 at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) 56 at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) 57 at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:849) 58 at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:760) 59 at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) 60 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) 61 at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) 62 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 63 at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) 64 at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) 65 at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 66 at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 67 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 68 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 69 at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 70 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 71 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 72 at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) 73 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 74 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 75 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 76 at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) 77 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 78 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 79 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 80 at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) 81 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 82 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 83 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 84 at org.springframework.cloud.sleuth.instrument.web.TraceFilter.doFilter(TraceFilter.java:166) 85 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 86 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 87 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) 88 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 89 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 90 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 91 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) 92 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) 93 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) 94 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) 95 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) 96 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 97 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) 98 at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800) 99 at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 100 at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806) 101 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) 102 at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 103 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 104 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 105 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 106 at java.lang.Thread.run(Thread.java:748) 107 com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction 108 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 109 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 110 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 111 at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 112 at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) 113 at com.mysql.jdbc.Util.getInstance(Util.java:408) 114 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:952) 115 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3978) 116 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3914) 117 at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530) 118 at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683) 119 at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2495) 120 at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1903) 121 at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1242) 122 at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source) 123 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 124 at java.lang.reflect.Method.invoke(Method.java:498) 125 at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114) 126 at com.sun.proxy.$Proxy204.execute(Unknown Source) 127 at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source) 128 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 129 at java.lang.reflect.Method.invoke(Method.java:498) 130 at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59) 131 at com.sun.proxy.$Proxy205.execute(Unknown Source) 132 at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47) 133 at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74) 134 at sun.reflect.GeneratedMethodAccessor156.invoke(Unknown Source) 135 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 136 at java.lang.reflect.Method.invoke(Method.java:498) 137 at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63) 138 at com.sun.proxy.$Proxy202.update(Unknown Source) 139 at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doUpdate(MybatisSimpleExecutor.java:54) 140 at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) 141 at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76) 142 at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197) 143 at sun.reflect.GeneratedMethodAccessor206.invoke(Unknown Source) 144 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 145 at java.lang.reflect.Method.invoke(Method.java:498) 146 at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426) 147 at com.sun.proxy.$Proxy111.update(Unknown Source) 148 at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:287) 149 at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:63) 150 at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:62) 151 at com.sun.proxy.$Proxy127.update(Unknown Source) 152 at com.cfam.service.impl.UploadFileServiceImpl.updateFileBank(UploadFileServiceImpl.java:427) 153 at com.cfam.service.impl.UploadFileServiceImpl.submitFile(UploadFileServiceImpl.java:298) 154 at com.cfam.controller.UploadFileBankController.submitFile(UploadFileBankController.java:170) 155 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 156 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 157 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 158 at java.lang.reflect.Method.invoke(Method.java:498) 159 at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) 160 at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) 161 at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) 162 at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:849) 163 at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:760) 164 at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) 165 at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) 166 at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) 167 at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 168 at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) 169 at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) 170 at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 171 at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 172 2019-11-19 13:45:40.093 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 173 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 174 INFO [service-repay,0b5978da87c17e54,0b5978da87c17e54,false] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 175 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 176 25292 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 177 --- at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) 178 [nio-8888-exec-1] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 179 com.cfam.config.GlobalExceptionHandler at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 180 : at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 181 sql执行异常:Deadlock found when trying to get lock; try restarting transaction 182 at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) 183 2019-11-19 13:45:40.093 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 184 INFO [service-repay,1c69eace301be910,1c69eace301be910,false] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 185 25292 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 186 --- at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) 187 [nio-8888-exec-2] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 188 com.cfam.config.GlobalExceptionHandler at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 189 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 190 at org.springframework.cloud.sleuth.instrument.web.TraceFilter.doFilter(TraceFilter.java:166) 191 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 192 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 193 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) 194 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 195 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 196 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 197 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) 198 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) 199 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) 200 : at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) 201 sql执行异常:Deadlock found when trying to get lock; try restarting transaction 202 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) 203 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 204 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) 205 at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800) 206 at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 207 at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806) 208 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) 209 at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 210 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 211 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 212 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 213 at java.lang.Thread.run(Thread.java:748)
批量更新报错
sql执行异常:Deadlock found when trying to get lock; try restarting transaction
百度查看说是杀掉进程。