Skip to content

Periodic Completion Execution Error #4624

Description

@Roman-Emperor-42

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugIssues that contain unintended behavior

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions