LuckPerms

LuckPerms

41.4k Downloads

Createtrack command causes MySQL issue

jacobsandersen opened this issue ยท 8 comments

commented
 simpleauthority issued server command: /lp createtrack test
[02:14:33 WARN]: java.util.concurrent.ExecutionException: java.sql.SQLException: Column count doesn't match value count at row 1
[02:14:33 WARN]:        at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
[02:14:33 WARN]:        at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
[02:14:33 WARN]:        at me.lucko.luckperms.common.commands.impl.track.CreateTrack.execute(CreateTrack.java:68)
[02:14:33 WARN]:        at me.lucko.luckperms.common.commands.abstraction.SingleCommand.execute(SingleCommand.java:51)
[02:14:33 WARN]:        at me.lucko.luckperms.common.commands.abstraction.SingleCommand.execute(SingleCommand.java:43)
[02:14:33 WARN]:        at me.lucko.luckperms.common.commands.CommandManager.execute(CommandManager.java:197)
[02:14:33 WARN]:        at me.lucko.luckperms.common.commands.CommandManager.lambda$onCommand$0(CommandManager.java:142)
[02:14:33 WARN]:        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
[02:14:33 WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[02:14:33 WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[02:14:33 WARN]:        at java.lang.Thread.run(Thread.java:748)
[02:14:33 WARN]: Caused by: java.sql.SQLException: Column count doesn't match value count at row 1
[02:14:33 WARN]:        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)
[02:14:33 WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
[02:14:33 WARN]:        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
[02:14:33 WARN]:        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)
[02:14:33 WARN]:        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
[02:14:33 WARN]:        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2487)
[02:14:33 WARN]:        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)
[02:14:33 WARN]:        at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197)
[02:14:33 WARN]:        at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
[02:14:33 WARN]:        at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
[02:14:33 WARN]:        at me.lucko.luckperms.common.storage.dao.sql.SqlDao.createAndLoadTrack(SqlDao.java:802)
[02:14:33 WARN]:        at me.lucko.luckperms.common.storage.AbstractStorage.lambda$createAndLoadTrack$13(AbstractStorage.java:234)
[02:14:33 WARN]:        at me.lucko.luckperms.common.storage.AbstractStorage.lambda$makeFuture$0(AbstractStorage.java:84)
[02:14:33 WARN]:        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
[02:14:33 WARN]:        at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftTask.run(CraftTask.java:71)
[02:14:33 WARN]:        at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:52)
[02:14:33 WARN]:        ... 3 more

I believe something must be broken with our schema, or something else. Has anyone experienced with before?

commented

Uhh no, I've never had reports of issues similar.

You're using a slightly outdated version, so it's quite hard to track exactly where it's failing.

Can you try updating?
https://ci.lucko.me/job/LuckPerms/

commented

@lucko Sure. I've updated to 4.1.16
4.1.16

Same error:

[02:39:25 INFO]: simpleauthority issued server command: /lp createtrack test
[02:39:26 WARN]: java.util.concurrent.ExecutionException: java.sql.SQLException: Column count doesn't match value count at row 1
[02:39:26 WARN]:        at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
[02:39:26 WARN]:        at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
[02:39:26 WARN]:        at me.lucko.luckperms.common.commands.impl.track.CreateTrack.execute(CreateTrack.java:68)
[02:39:26 WARN]:        at me.lucko.luckperms.common.commands.abstraction.SingleCommand.execute(SingleCommand.java:51)
[02:39:26 WARN]:        at me.lucko.luckperms.common.commands.abstraction.SingleCommand.execute(SingleCommand.java:43)
[02:39:26 WARN]:        at me.lucko.luckperms.common.commands.CommandManager.execute(CommandManager.java:201)
[02:39:26 WARN]:        at me.lucko.luckperms.common.commands.CommandManager.lambda$onCommand$0(CommandManager.java:146)
[02:39:26 WARN]:        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
[02:39:26 WARN]:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[02:39:26 WARN]:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[02:39:26 WARN]:        at java.lang.Thread.run(Thread.java:748)
[02:39:26 WARN]: Caused by: java.sql.SQLException: Column count doesn't match value count at row 1
[02:39:26 WARN]:        at me.lucko.luckperms.lib.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)
[02:39:26 WARN]:        at me.lucko.luckperms.lib.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)
[02:39:26 WARN]:        at me.lucko.luckperms.lib.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)
[02:39:26 WARN]:        at me.lucko.luckperms.lib.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)
[02:39:26 WARN]:        at me.lucko.luckperms.lib.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
[02:39:26 WARN]:        at me.lucko.luckperms.lib.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2484)
[02:39:26 WARN]:        at me.lucko.luckperms.lib.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)
[02:39:26 WARN]:        at me.lucko.luckperms.lib.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1197)
[02:39:26 WARN]:        at me.lucko.luckperms.lib.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
[02:39:26 WARN]:        at me.lucko.luckperms.lib.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
[02:39:26 WARN]:        at me.lucko.luckperms.common.storage.dao.sql.SqlDao.createAndLoadTrack(SqlDao.java:795)
[02:39:26 WARN]:        at me.lucko.luckperms.common.storage.AbstractStorage.lambda$createAndLoadTrack$15(AbstractStorage.java:249)
[02:39:26 WARN]:        at me.lucko.luckperms.common.storage.AbstractStorage.lambda$makeFuture$0(AbstractStorage.java:86)
[02:39:26 WARN]:        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
[02:39:26 WARN]:        at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftTask.run(CraftTask.java:71)
[02:39:26 WARN]:        at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:52)
[02:39:26 WARN]:        ... 3 more

I checked our schema and it looks like this. Everything look okay to you?

mysql> use luckperms;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+-----------------------------+
| Tables_in_luckperms         |
+-----------------------------+
| luckperms_actions           |
| luckperms_group_permissions |
| luckperms_groups            |
| luckperms_players           |
| luckperms_tracks            |
| luckperms_user_permissions  |
| lv_content                  |
| lv_group_data               |
+-----------------------------+
8 rows in set (0.00 sec)

mysql> select * from luckperms_tracks;
+----------+--------------------------------------------------------------------------------------+----------+------------+
| name     | groups                                                                               | order_id | is_visible |
+----------+--------------------------------------------------------------------------------------+----------+------------+
| builder  | ["designer","architect"]                                                             |        0 |          0 |
| creative | ["champ","spartan","elite","royal","demigod"]                                        |        2 |          1 |
| dweller  | ["dweller","settler"]                                                                |        0 |          0 |
| staff    | ["ambassador","trialmod","mod","supermod","admin","owner"]                           |        0 |          0 |
| survival | ["dweller","settler","colonist","merchant","pioneer","apprentice","artisan","baron"] |        1 |          1 |
| vip      | ["oracle","vip"]                                                                     |        0 |          0 |
+----------+--------------------------------------------------------------------------------------+----------+------------+
6 rows in set (0.00 sec)
commented

I wonder what could be the issue.

commented

Yep, I have no idea.

commented

My only guess is that something is corrupted in your MySQL server.

You could try recreating the table from the schema.

https://github.com/lucko/LuckPerms/blob/47739344816560d482f88cc00ff3dce4b68d295f/common/src/main/resources/schema/mysql.sql#L56-L60

Going to close this - as far as I can tell there's no issue within LP that could be causing this.

commented

@lucko Doing so would lose data, right?

commented

Yes, the contents of the tracks table would be lost - but you should be able to easily recreate it.