stroom icon indicating copy to clipboard operation
stroom copied to clipboard

SQL Deadlock

Open stroomdev10 opened this issue 3 years ago • 2 comments

SQL Stats Deadlock.txt

stroomdev10 avatar Jun 27 '22 07:06 stroomdev10

In-lining

SQL [update `meta` as `m` set `m`.`status` = ?, `m`.`status_time` = ? where (`m`.`id` = ? and `m`.`status` = ?)]; Deadlock found when trying to get lock; try restarting transaction 
org.jooq.exception.DataAccessException: SQL [update `meta` as `m` set `m`.`status` = ?, `m`.`status_time` = ? where (`m`.`id` = ? and `m`.`status` = ?)]; Deadlock found when trying to get lock; try restarting transaction
	at org.jooq_3.12.3.MYSQL.debug(Unknown Source)
	at org.jooq.impl.Tools.translate(Tools.java:2717)
	at org.jooq.impl.DefaultExecuteContext.sqlException(DefaultExecuteContext.java:755)
	at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:382)
	at org.jooq.impl.AbstractDelegatingQuery.execute(AbstractDelegatingQuery.java:119)
	at stroom.meta.impl.db.MetaDaoImpl.lambda$updateStatus$21(MetaDaoImpl.java:464)
	at stroom.db.util.JooqUtil.contextResult(JooqUtil.java:146)
	at stroom.meta.impl.db.MetaDaoImpl.updateStatus(MetaDaoImpl.java:458)
	at stroom.meta.impl.MetaServiceImpl.updateStatus(MetaServiceImpl.java:180)
	at stroom.meta.impl.MetaServiceImpl.updateStatus(MetaServiceImpl.java:141)
	at stroom.data.store.impl.fs.FsTarget.unlock(FsTarget.java:272)
	at stroom.data.store.impl.fs.FsTarget.close(FsTarget.java:246)
	at stroom.util.io.CloseableUtil.close(CloseableUtil.java:43)
	at stroom.util.io.CloseableUtil.closeLogAndIgnoreException(CloseableUtil.java:31)
	at stroom.receive.common.StreamTargetStroomStreamHandler.lambda$close$4(StreamTargetStroomStreamHandler.java:304)
	at java.base/java.util.HashMap$Values.forEach(HashMap.java:1067)
	at stroom.receive.common.StreamTargetStroomStreamHandler.close(StreamTargetStroomStreamHandler.java:304)
	at stroom.util.io.CloseableUtil.close(CloseableUtil.java:43)
	at stroom.util.io.CloseableUtil.closeLogAndIgnoreException(CloseableUtil.java:31)
	at stroom.receive.common.StroomStreamProcessor.closeHandlers(StroomStreamProcessor.java:392)
	at stroom.core.receive.ReceiveDataRequestHandler.lambda$handle$1(ReceiveDataRequestHandler.java:164)
	at stroom.security.impl.SecurityContextImpl.asProcessingUser(SecurityContextImpl.java:286)
	at stroom.core.receive.ReceiveDataRequestHandler.handle(ReceiveDataRequestHandler.java:94)
	at stroom.receive.common.ReceiveDataServlet.handleRequest(ReceiveDataServlet.java:87)
	at stroom.receive.common.ReceiveDataServlet.doPost(ReceiveDataServlet.java:61)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:791)
	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626)
	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:214)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at io.dropwizard.servlets.ThreadNameFilter.doFilter(ThreadNameFilter.java:35)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at io.dropwizard.jersey.filter.AllowedMethodsFilter.handle(AllowedMethodsFilter.java:45)
	at io.dropwizard.jersey.filter.AllowedMethodsFilter.doFilter(AllowedMethodsFilter.java:39)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at stroom.security.impl.SecurityFilter.continueAsUser(SecurityFilter.java:273)
	at stroom.security.impl.SecurityFilter.bypassAuthentication(SecurityFilter.java:260)
	at stroom.security.impl.SecurityFilter.authenticateAsProcUser(SecurityFilter.java:246)
	at stroom.security.impl.SecurityFilter.filter(SecurityFilter.java:162)
	at stroom.security.impl.SecurityFilter.doFilter(SecurityFilter.java:110)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at stroom.security.impl.ContentSecurityFilter.doFilter(ContentSecurityFilter.java:75)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at stroom.core.servlet.RejectPostFilter.doFilter(RejectPostFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at stroom.core.servlet.HttpServletRequestFilter.doFilter(HttpServletRequestFilter.java:56)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at stroom.core.servlet.CacheControlFilter.doFilter(CacheControlFilter.java:100)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:319)
	at org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:273)
	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:313)
	at io.dropwizard.jetty.RoutingHandler.handle(RoutingHandler.java:52)
	at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:716)
	at io.dropwizard.jetty.BiDiGzipHandler.handle(BiDiGzipHandler.java:67)
	at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:54)
	at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:179)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
	at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:123)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)
	at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
	at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
	at org.jooq.tools.jdbc.DefaultPreparedStatement.execute(DefaultPreparedStatement.java:209)
	at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:450)
	at org.jooq.impl.AbstractDMLQuery.execute(AbstractDMLQuery.java:874)
	at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:368)
	... 93 common frames omitted

at055612 avatar Jun 27 '22 08:06 at055612

Nothing to do with stats, just a sql deadlock

at055612 avatar Jun 27 '22 11:06 at055612