Describe the issue
Periodic CompletionExectuion error with a sql deadlock
Exceptions & Other Logs
[11:12:20 ERROR]: [Plan] Ran into CompletionException - logged to plugins/Plan/logs/CompletionException-1d0cc1339e.txt
[11:12:20 ERROR]: [Plan] (INCLUDE CONTENTS OF THE FILE IN ANY REPORTS)
[11:12:20 ERROR]: [Plan] Error msg: "com.djrapitops.plan.exceptions.database.DBOpException: SQL Failure: Deadlock found when trying to get lock; try restarting transaction"
1d0cc1339e - Last occurred: 2026-05-08 Occurrences: 6
---- Context 5 ----
Plan v5.7 build 3306
ShreddedPaper 1.21.11-DEV-8910c3c (MC: 1.21.11)
Server v1.21.11-R0.1-SNAPSHOT
Transaction: class com.djrapitops.plan.storage.database.transactions.events.BatchBanStatusTransaction
DB State: OPEN - fatal: false
Error code: 1213
UPDATE plan_user_info SET banned=? WHERE (user_id=(SELECT plan_users.id FROM plan_users WHERE plan_users.uuid=? LIMIT 1)) AND (server_id=(SELECT plan_servers.id FROM plan_servers WHERE plan_servers.uuid=? LIMIT 1))
Deadlock
---- Context 4 ----
Plan v5.7 build 3306
ShreddedPaper 1.21.11-DEV-8910c3c (MC: 1.21.11)
Server v1.21.11-R0.1-SNAPSHOT
Transaction: class com.djrapitops.plan.storage.database.transactions.events.BatchBanStatusTransaction
DB State: OPEN - fatal: false
Error code: 1213
UPDATE plan_user_info SET banned=? WHERE (user_id=(SELECT plan_users.id FROM plan_users WHERE plan_users.uuid=? LIMIT 1)) AND (server_id=(SELECT plan_servers.id FROM plan_servers WHERE plan_servers.uuid=? LIMIT 1))
Deadlock
---- Context 3 ----
Plan v5.7 build 3306
ShreddedPaper 1.21.11-DEV-8910c3c (MC: 1.21.11)
Server v1.21.11-R0.1-SNAPSHOT
Transaction: class com.djrapitops.plan.storage.database.transactions.events.BatchBanStatusTransaction
DB State: OPEN - fatal: false
Error code: 1213
UPDATE plan_user_info SET banned=? WHERE (user_id=(SELECT plan_users.id FROM plan_users WHERE plan_users.uuid=? LIMIT 1)) AND (server_id=(SELECT plan_servers.id FROM plan_servers WHERE plan_servers.uuid=? LIMIT 1))
Deadlock
---- Context 2 ----
Plan v5.7 build 3306
ShreddedPaper 1.21.11-DEV-8910c3c (MC: 1.21.11)
Server v1.21.11-R0.1-SNAPSHOT
Transaction: class com.djrapitops.plan.storage.database.transactions.events.BatchBanStatusTransaction
DB State: OPEN - fatal: false
Error code: 1213
UPDATE plan_user_info SET banned=? WHERE (user_id=(SELECT plan_users.id FROM plan_users WHERE plan_users.uuid=? LIMIT 1)) AND (server_id=(SELECT plan_servers.id FROM plan_servers WHERE plan_servers.uuid=? LIMIT 1))
Deadlock
---- Context 1 ----
Plan v5.7 build 3306
ShreddedPaper 1.21.11-DEV-8910c3c (MC: 1.21.11)
Server v1.21.11-R0.1-SNAPSHOT
Transaction: class com.djrapitops.plan.storage.database.transactions.events.BatchBanStatusTransaction
DB State: OPEN - fatal: false
Error code: 1213
UPDATE plan_user_info SET banned=? WHERE (user_id=(SELECT plan_users.id FROM plan_users WHERE plan_users.uuid=? LIMIT 1)) AND (server_id=(SELECT plan_servers.id FROM plan_servers WHERE plan_servers.uuid=? LIMIT 1))
Deadlock
---- Stacktrace ----
java.util.concurrent.CompletionException: com.djrapitops.plan.exceptions.database.DBOpException: SQL Failure: Deadlock found when trying to get lock; try restarting transaction
java.base/java.util.concurrent.CompletableFuture.wrapInCompletionException(CompletableFuture.java:323)
java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:359)
java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:364)
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1791)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
java.base/java.lang.Thread.run(Thread.java:1474)
Caused by:
com.djrapitops.plan.exceptions.database.DBOpException: SQL Failure: Deadlock found when trying to get lock; try restarting transaction
Plan-5.7-build-3306.jar//com.djrapitops.plan.exceptions.database.DBOpException.forCause(DBOpException.java:160)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.ExecStatement.execute(ExecStatement.java:57)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.Transaction.execute(Transaction.java:233)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.events.BatchBanStatusTransaction.performOperations(BatchBanStatusTransaction.java:52)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.Transaction.executeTransaction(Transaction.java:86)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.SQLDB.lambda$executeTransaction$1(SQLDB.java:327)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.DBAccessLock.performDatabaseOperation(DBAccessLock.java:78)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.DBAccessLock.performDatabaseOperation(DBAccessLock.java:56)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.SQLDB.lambda$executeTransaction$0(SQLDB.java:326)
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1789)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
java.base/java.lang.Thread.run(Thread.java:1474)
Caused by:
java.sql.BatchUpdateException: Deadlock found when trying to get lock; try restarting transaction
com.mysql.cj.jdbc.exceptions.SQLError.createBatchUpdateException(SQLError.java:214)
com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:879)
com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchInternal(ClientPreparedStatement.java:466)
com.mysql.cj.jdbc.StatementImpl.executeBatch(StatementImpl.java:858)
Plan-5.7-build-3306.jar//plan.com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:128)
Plan-5.7-build-3306.jar//plan.com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.ExecBatchStatement.callExecute(ExecBatchStatement.java:35)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.ExecStatement.execute(ExecStatement.java:64)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.ExecStatement.execute(ExecStatement.java:55)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.Transaction.execute(Transaction.java:233)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.events.BatchBanStatusTransaction.performOperations(BatchBanStatusTransaction.java:52)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.Transaction.executeTransaction(Transaction.java:86)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.SQLDB.lambda$executeTransaction$1(SQLDB.java:327)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.DBAccessLock.performDatabaseOperation(DBAccessLock.java:78)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.DBAccessLock.performDatabaseOperation(DBAccessLock.java:56)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.SQLDB.lambda$executeTransaction$0(SQLDB.java:326)
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1789)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
java.base/java.lang.Thread.run(Thread.java:1474)
Caused by:
com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:115)
com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:114)
com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:990)
com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1168)
com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:864)
com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchInternal(ClientPreparedStatement.java:466)
com.mysql.cj.jdbc.StatementImpl.executeBatch(StatementImpl.java:858)
Plan-5.7-build-3306.jar//plan.com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:128)
Plan-5.7-build-3306.jar//plan.com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.ExecBatchStatement.callExecute(ExecBatchStatement.java:35)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.ExecStatement.execute(ExecStatement.java:64)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.ExecStatement.execute(ExecStatement.java:55)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.Transaction.execute(Transaction.java:233)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.events.BatchBanStatusTransaction.performOperations(BatchBanStatusTransaction.java:52)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.transactions.Transaction.executeTransaction(Transaction.java:86)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.SQLDB.lambda$executeTransaction$1(SQLDB.java:327)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.DBAccessLock.performDatabaseOperation(DBAccessLock.java:78)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.DBAccessLock.performDatabaseOperation(DBAccessLock.java:56)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.SQLDB.lambda$executeTransaction$0(SQLDB.java:326)
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1789)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
java.base/java.lang.Thread.run(Thread.java:1474)
java.base/java.lang.Thread.getStackTrace(Thread.java:2193)
Plan-5.7-build-3306.jar//com.djrapitops.plan.storage.database.SQLDB.executeTransaction(SQLDB.java:313)
Plan-5.7-build-3306.jar//com.djrapitops.plan.gathering.timed.BanStatusUpkeepTask.updateBanStatus(BanStatusUpkeepTask.java:106)
Plan-5.7-build-3306.jar//com.djrapitops.plan.gathering.timed.BanStatusUpkeepTask.run(BanStatusUpkeepTask.java:67)
Plan-5.7-build-3306.jar//net.playeranalytics.plugin.scheduling.UnscheduledFoliaTask.lambda$runTaskTimerAsynchronously$2(UnscheduledFoliaTask.java:48)
io.papermc.paper.threadedregions.scheduler.FoliaAsyncScheduler$AsyncScheduledTask.run(FoliaAsyncScheduler.java:216)
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
java.base/java.lang.Thread.run(Thread.java:1474)
Plugin versions
Plan version 5.7 build 3306
Additional information
This could be linked to us running a semi-niche server software (Shreddedpaper). Even if so it's likely that this could be an error on folia as well. It doesn't seem to be causing any other issues.
Describe the issue
Periodic CompletionExectuion error with a sql deadlock
Exceptions & Other Logs
Plugin versions
Plan version 5.7 build 3306
Additional information
This could be linked to us running a semi-niche server software (Shreddedpaper). Even if so it's likely that this could be an error on folia as well. It doesn't seem to be causing any other issues.