The website is not working while sonarqube is running

As the title says, while sonarqube is still running, the website is not working. I have read the log file, and find the error in web.log:

2024.09.23 14:26:13 ERROR web[][o.s.s.p.w.RootFilter] Processing of request /api/measures/component?component=NUW-NTA-DATA-sonar&metricKeys=security_hotspots_reviewed failed
org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: org.h2.jdbc.JdbcSQLTimeoutException: Timeout trying to lock table {0}; SQL statement:
update session_tokens set
      expiration_date = ?,
      updated_at = ?
    where
      uuid = ? [50200-212]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:560)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:477)
	at org.h2.message.DbException.get(DbException.java:212)
	at org.h2.command.Command.filterConcurrentUpdate(Command.java:324)
	at org.h2.command.Command.executeUpdate(Command.java:258)
	at org.h2.server.TcpServerThread.process(TcpServerThread.java:408)
	at org.h2.server.TcpServerThread.run(TcpServerThread.java:191)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.h2.message.DbException: Concurrent update in table "SESSION_TOKENS": another transaction has updated or deleted the same row [90131-212]
	at org.h2.message.DbException.get(DbException.java:212)
	at org.h2.mvstore.db.MVTable.convertException(MVTable.java:680)
	at org.h2.mvstore.db.MVPrimaryIndex.lockRow(MVPrimaryIndex.java:224)
	at org.h2.mvstore.db.MVPrimaryIndex.lockRow(MVPrimaryIndex.java:217)
	at org.h2.mvstore.db.MVTable.lockRow(MVTable.java:555)
	at org.h2.command.dml.Update.update(Update.java:76)
	at org.h2.command.dml.DataChangeStatement.update(DataChangeStatement.java:74)
	at org.h2.command.CommandContainer.update(CommandContainer.java:174)
	at org.h2.command.Command.executeUpdate(Command.java:252)
	... 3 more
Caused by: org.h2.jdbc.JdbcSQLTransientException: Concurrent update in table "SESSION_TOKENS": another transaction has updated or deleted the same row [90131-212]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:682)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:477)
	... 12 more
Caused by: org.h2.mvstore.MVStoreException: Map entry <table.252> with key <777> and value ( /* key:777 */ 'AZIdijBWdtinlMPkAq-W', 'AY_nWjO_phQRMs7R-yXR', 1727331648598, 1727072448598, 1727072448598) 6/0 ( /* key:777 */ 'AZIdijBWdtinlMPkAq-W', 'AY_nWjO_phQRMs7R-yXR', 1727331648598, 1727072448598, 1727072448598) is locked by tx 6 and can not be updated by tx 7 within allocated time interval 2000 ms. [2.1.212/101]
	at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:1004)
	at org.h2.mvstore.tx.TransactionMap.set(TransactionMap.java:363)
	at org.h2.mvstore.tx.TransactionMap.lock(TransactionMap.java:312)
	at org.h2.mvstore.db.MVPrimaryIndex.lockRow(MVPrimaryIndex.java:222)
	... 9 more

### The error may exist in org.sonar.db.user.SessionTokenMapper
### The error may involve org.sonar.db.user.SessionTokenMapper.update-Inline
### The error occurred while setting parameters
### SQL: update session_tokens set       expiration_date = ?,       updated_at = ?     where       uuid = ?
### Cause: org.h2.jdbc.JdbcSQLTimeoutException: Timeout trying to lock table {0}; SQL statement:
update session_tokens set
      expiration_date = ?,
      updated_at = ?
    where
      uuid = ? [50200-212]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:560)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:477)
	at org.h2.message.DbException.get(DbException.java:212)
	at org.h2.command.Command.filterConcurrentUpdate(Command.java:324)
	at org.h2.command.Command.executeUpdate(Command.java:258)
	at org.h2.server.TcpServerThread.process(TcpServerThread.java:408)
	at org.h2.server.TcpServerThread.run(TcpServerThread.java:191)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.h2.message.DbException: Concurrent update in table "SESSION_TOKENS": another transaction has updated or deleted the same row [90131-212]
	at org.h2.message.DbException.get(DbException.java:212)
	at org.h2.mvstore.db.MVTable.convertException(MVTable.java:680)
	at org.h2.mvstore.db.MVPrimaryIndex.lockRow(MVPrimaryIndex.java:224)
	at org.h2.mvstore.db.MVPrimaryIndex.lockRow(MVPrimaryIndex.java:217)
	at org.h2.mvstore.db.MVTable.lockRow(MVTable.java:555)
	at org.h2.command.dml.Update.update(Update.java:76)
	at org.h2.command.dml.DataChangeStatement.update(DataChangeStatement.java:74)
	at org.h2.command.CommandContainer.update(CommandContainer.java:174)
	at org.h2.command.Command.executeUpdate(Command.java:252)
	... 3 more
Caused by: org.h2.jdbc.JdbcSQLTransientException: Concurrent update in table "SESSION_TOKENS": another transaction has updated or deleted the same row [90131-212]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:682)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:477)
	... 12 more
Caused by: org.h2.mvstore.MVStoreException: Map entry <table.252> with key <777> and value ( /* key:777 */ 'AZIdijBWdtinlMPkAq-W', 'AY_nWjO_phQRMs7R-yXR', 1727331648598, 1727072448598, 1727072448598) 6/0 ( /* key:777 */ 'AZIdijBWdtinlMPkAq-W', 'AY_nWjO_phQRMs7R-yXR', 1727331648598, 1727072448598, 1727072448598) is locked by tx 6 and can not be updated by tx 7 within allocated time interval 2000 ms. [2.1.212/101]
	at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:1004)
	at org.h2.mvstore.tx.TransactionMap.set(TransactionMap.java:363)
	at org.h2.mvstore.tx.TransactionMap.lock(TransactionMap.java:312)
	at org.h2.mvstore.db.MVPrimaryIndex.lockRow(MVPrimaryIndex.java:222)
	... 9 more

	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:196)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:67)
	at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:145)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86)
	at com.sun.proxy.$Proxy59.update(Unknown Source)
	at org.sonar.db.user.SessionTokensDao.update(SessionTokensDao.java:53)
	at org.sonar.server.authentication.JwtHttpHandler.refreshToken(JwtHttpHandler.java:182)
	at org.sonar.server.authentication.JwtHttpHandler.validateToken(JwtHttpHandler.java:163)
	at org.sonar.server.authentication.JwtHttpHandler.getToken(JwtHttpHandler.java:124)
	at org.sonar.server.authentication.JwtHttpHandler.validateToken(JwtHttpHandler.java:114)
	at org.sonar.server.authentication.RequestAuthenticatorImpl.loadUser(RequestAuthenticatorImpl.java:94)
	at org.sonar.server.authentication.RequestAuthenticatorImpl.authenticate(RequestAuthenticatorImpl.java:76)
	at org.sonar.server.authentication.UserSessionInitializer.loadUserSession(UserSessionInitializer.java:129)
	at org.sonar.server.authentication.UserSessionInitializer.initUserSession(UserSessionInitializer.java:104)
	at org.sonar.server.platform.web.UserSessionFilter.doFilter(UserSessionFilter.java:80)
	at org.sonar.server.platform.web.UserSessionFilter.doFilter(UserSessionFilter.java:68)
	at jdk.internal.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:550)
	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187)
	at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
	at org.sonar.server.platform.web.CacheControlFilter.doFilter(CacheControlFilter.java:76)
	at jdk.internal.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:550)
	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187)
	at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
	at org.sonar.server.platform.web.SecurityServletFilter.doHttpFilter(SecurityServletFilter.java:75)
	at org.sonar.server.platform.web.SecurityServletFilter.doFilter(SecurityServletFilter.java:47)
	at jdk.internal.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:550)
	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187)
	at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
	at org.sonar.server.platform.web.RedirectFilter.doFilter(RedirectFilter.java:57)
	at jdk.internal.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:550)
	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187)
	at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
	at org.sonar.server.platform.web.RequestIdFilter.doFilter(RequestIdFilter.java:66)
	at jdk.internal.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:550)
	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187)
	at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
	at org.sonar.server.platform.web.RootFilter.doFilter(RootFilter.java:62)
	at jdk.internal.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:550)
	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187)
	at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
	at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
	at jdk.internal.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:550)
	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187)
	at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
	at ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:256)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.h2.jdbc.JdbcSQLTimeoutException: Timeout trying to lock table {0}; SQL statement:
update session_tokens set
      expiration_date = ?,
      updated_at = ?
    where
      uuid = ? [50200-212]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:560)
	at org.h2.engine.SessionRemote.readException(SessionRemote.java:637)
	at org.h2.engine.SessionRemote.done(SessionRemote.java:606)
	at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:227)
	at org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:254)
	at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94)
	at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94)
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)
	at org.apache.ibatis.executor.ReuseExecutor.doUpdate(ReuseExecutor.java:52)
	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)
	... 123 common frames omitted
2024.09.23 14:26:17 ERROR web[][o.s.s.p.w.RootFilter] Processing of request /api/issues/search?componentKeys=NUW-NTA-DATA-sonar&s=FILE_LINE&resolved=false&ps=100&facets=severities%2Ctypes&additionalFields=_all&timeZone=Asia%2FShanghai failed
org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: org.h2.jdbc.JdbcSQLTimeoutException: Timeout trying to lock table {0}; SQL statement:
update session_tokens set
      expiration_date = ?,
      updated_at = ?
    where
      uuid = ? [50200-212]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:560)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:477)
	at org.h2.message.DbException.get(DbException.java:212)
	at org.h2.command.Command.filterConcurrentUpdate(Command.java:324)
	at org.h2.command.Command.executeUpdate(Command.java:258)
	at org.h2.server.TcpServerThread.process(TcpServerThread.java:408)
	at org.h2.server.TcpServerThread.run(TcpServerThread.java:191)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.h2.message.DbException: Concurrent update in table "SESSION_TOKENS": another transaction has updated or deleted the same row [90131-212]
	at org.h2.message.DbException.get(DbException.java:212)
	at org.h2.mvstore.db.MVTable.convertException(MVTable.java:680)
	at org.h2.mvstore.db.MVPrimaryIndex.lockRow(MVPrimaryIndex.java:224)
	at org.h2.mvstore.db.MVPrimaryIndex.lockRow(MVPrimaryIndex.java:217)
	at org.h2.mvstore.db.MVTable.lockRow(MVTable.java:555)
	at org.h2.command.dml.Update.update(Update.java:76)
	at org.h2.command.dml.DataChangeStatement.update(DataChangeStatement.java:74)
	at org.h2.command.CommandContainer.update(CommandContainer.java:174)
	at org.h2.command.Command.executeUpdate(Command.java:252)
	... 3 more
Caused by: org.h2.jdbc.JdbcSQLTransientException: Concurrent update in table "SESSION_TOKENS": another transaction has updated or deleted the same row [90131-212]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:682)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:477)
	... 12 more
Caused by: org.h2.mvstore.MVStoreException: Map entry <table.252> with key <777> and value ( /* key:777 */ 'AZIdijBWdtinlMPkAq-W', 'AY_nWjO_phQRMs7R-yXR', 1727331648598, 1727072448598, 1727072448598) 6/0 ( /* key:777 */ 'AZIdijBWdtinlMPkAq-W', 'AY_nWjO_phQRMs7R-yXR', 1727331648598, 1727072448598, 1727072448598) is locked by tx 6 and can not be updated by tx 7 within allocated time interval 2000 ms. [2.1.212/101]
	at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:1004)
	at org.h2.mvstore.tx.TransactionMap.set(TransactionMap.java:363)
	at org.h2.mvstore.tx.TransactionMap.lock(TransactionMap.java:312)
	at org.h2.mvstore.db.MVPrimaryIndex.lockRow(MVPrimaryIndex.java:222)
	... 9 more

### The error may exist in org.sonar.db.user.SessionTokenMapper
### The error may involve org.sonar.db.user.SessionTokenMapper.update-Inline
### The error occurred while setting parameters
### SQL: update session_tokens set       expiration_date = ?,       updated_at = ?     where       uuid = ?
### Cause: org.h2.jdbc.JdbcSQLTimeoutException: Timeout trying to lock table {0}; SQL statement:
update session_tokens set
      expiration_date = ?,
      updated_at = ?
    where
      uuid = ? [50200-212]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:560)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:477)
	at org.h2.message.DbException.get(DbException.java:212)
	at org.h2.command.Command.filterConcurrentUpdate(Command.java:324)
	at org.h2.command.Command.executeUpdate(Command.java:258)
	at org.h2.server.TcpServerThread.process(TcpServerThread.java:408)
	at org.h2.server.TcpServerThread.run(TcpServerThread.java:191)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.h2.message.DbException: Concurrent update in table "SESSION_TOKENS": another transaction has updated or deleted the same row [90131-212]
	at org.h2.message.DbException.get(DbException.java:212)
	at org.h2.mvstore.db.MVTable.convertException(MVTable.java:680)
	at org.h2.mvstore.db.MVPrimaryIndex.lockRow(MVPrimaryIndex.java:224)
	at org.h2.mvstore.db.MVPrimaryIndex.lockRow(MVPrimaryIndex.java:217)
	at org.h2.mvstore.db.MVTable.lockRow(MVTable.java:555)
	at org.h2.command.dml.Update.update(Update.java:76)
	at org.h2.command.dml.DataChangeStatement.update(DataChangeStatement.java:74)
	at org.h2.command.CommandContainer.update(CommandContainer.java:174)
	at org.h2.command.Command.executeUpdate(Command.java:252)
	... 3 more
Caused by: org.h2.jdbc.JdbcSQLTransientException: Concurrent update in table "SESSION_TOKENS": another transaction has updated or deleted the same row [90131-212]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:682)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:477)
	... 12 more
Caused by: org.h2.mvstore.MVStoreException: Map entry <table.252> with key <777> and value ( /* key:777 */ 'AZIdijBWdtinlMPkAq-W', 'AY_nWjO_phQRMs7R-yXR', 1727331648598, 1727072448598, 1727072448598) 6/0 ( /* key:777 */ 'AZIdijBWdtinlMPkAq-W', 'AY_nWjO_phQRMs7R-yXR', 1727331648598, 1727072448598, 1727072448598) is locked by tx 6 and can not be updated by tx 7 within allocated time interval 2000 ms. [2.1.212/101]
	at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:1004)
	at org.h2.mvstore.tx.TransactionMap.set(TransactionMap.java:363)
	at org.h2.mvstore.tx.TransactionMap.lock(TransactionMap.java:312)
	at org.h2.mvstore.db.MVPrimaryIndex.lockRow(MVPrimaryIndex.java:222)
	... 9 more

	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:196)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:67)
	at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:145)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86)
	at com.sun.proxy.$Proxy59.update(Unknown Source)
	at org.sonar.db.user.SessionTokensDao.update(SessionTokensDao.java:53)
	at org.sonar.server.authentication.JwtHttpHandler.refreshToken(JwtHttpHandler.java:182)
	at org.sonar.server.authentication.JwtHttpHandler.validateToken(JwtHttpHandler.java:163)
	at org.sonar.server.authentication.JwtHttpHandler.getToken(JwtHttpHandler.java:124)
	at org.sonar.server.authentication.JwtHttpHandler.validateToken(JwtHttpHandler.java:114)
	at org.sonar.server.authentication.RequestAuthenticatorImpl.loadUser(RequestAuthenticatorImpl.java:94)
	at org.sonar.server.authentication.RequestAuthenticatorImpl.authenticate(RequestAuthenticatorImpl.java:76)
	at org.sonar.server.authentication.UserSessionInitializer.loadUserSession(UserSessionInitializer.java:129)
	at org.sonar.server.authentication.UserSessionInitializer.initUserSession(UserSessionInitializer.java:104)
	at org.sonar.server.platform.web.UserSessionFilter.doFilter(UserSessionFilter.java:80)
	at org.sonar.server.platform.web.UserSessionFilter.doFilter(UserSessionFilter.java:68)
	at jdk.internal.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:550)
	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187)
	at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
	at org.sonar.server.platform.web.CacheControlFilter.doFilter(CacheControlFilter.java:76)
	at jdk.internal.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:550)
	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187)
	at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
	at org.sonar.server.platform.web.SecurityServletFilter.doHttpFilter(SecurityServletFilter.java:75)
	at org.sonar.server.platform.web.SecurityServletFilter.doFilter(SecurityServletFilter.java:47)
	at jdk.internal.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:550)
	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187)
	at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
	at org.sonar.server.platform.web.RedirectFilter.doFilter(RedirectFilter.java:57)
	at jdk.internal.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:550)
	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187)
	at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
	at org.sonar.server.platform.web.RequestIdFilter.doFilter(RequestIdFilter.java:66)
	at jdk.internal.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:550)
	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187)
	at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
	at org.sonar.server.platform.web.RootFilter.doFilter(RootFilter.java:62)
	at jdk.internal.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:550)
	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187)
	at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
	at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
	at jdk.internal.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:550)
	at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
	at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187)
	at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
	at ch.qos.logback.access.tomcat.LogbackValve.invoke(LogbackValve.java:256)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.h2.jdbc.JdbcSQLTimeoutException: Timeout trying to lock table {0}; SQL statement:
update session_tokens set
      expiration_date = ?,
      updated_at = ?
    where
      uuid = ? [50200-212]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:560)
	at org.h2.engine.SessionRemote.readException(SessionRemote.java:637)
	at org.h2.engine.SessionRemote.done(SessionRemote.java:606)
	at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:227)
	at org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:254)
	at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94)
	at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94)
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)
	at org.apache.ibatis.executor.ReuseExecutor.doUpdate(ReuseExecutor.java:52)
	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)
	... 123 common frames omitted

I guess this is the point. So why there is a problem showing that concurrent update occurs in table “SESSION_TOKENS”?

Hey there.

What version of SonarQube are you using?

9.6.1.59531

Thanks! That’s an EOL version of SonarQube (and has been EOL since SonarQube 9.7 came out.

The currently active versions of SonarQube are v9.9 LTA and v10.6.

Since you’re using the H2 database, it’s not possible to upgrade your instance. I suggest you start fresh on a supported version, and see if the issue persists.

Thanks. However, due to some limits, I guess I can not easily upgrade the version of sonarqube. I will try to find out if it is an accidental problem, or it is related to some specific projects.

The problem doesn’t occur again. So maybe that is an accidential bug.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.