SlimefunGuguProject / Slimefun4

Slimefun4 (粘液科技) 汉化版 | Slimefun modified version
GNU General Public License v3.0
246 stars 57 forks source link

机器人运行几秒钟后频繁产生数据库错误 #911

Closed IXBOB closed 1 week ago

IXBOB commented 2 weeks ago

问题描述

机器人运行几秒钟后频繁产生数据库错误:

[16:31:29 ERROR]: [Slimefun] Exception thrown while executing write task: [16:31:29 WARN]: java.lang.IllegalStateException: An exception thrown while executing sql: INSERT OR IGNORE INTO block_data (data_val, loc, data_key) VALUES ('MC4w', 'world;1671:64:303', 'fuel'); [16:31:29 WARN]: at Slimefun-226af9b-Beta_build180.jar//com.xzavier0722.mc.plugin.slimefun4.storage.adapter.sqlcommon.SqlCommonAdapter.executeSql(SqlCommonAdapter.java:30) [16:31:29 WARN]: at Slimefun-226af9b-Beta_build180.jar//com.xzavier0722.mc.plugin.slimefun4.storage.adapter.sqlite.SqliteAdapter.executeSql(SqliteAdapter.java:317) [16:31:29 WARN]: at Slimefun-226af9b-Beta_build180.jar//com.xzavier0722.mc.plugin.slimefun4.storage.adapter.sqlite.SqliteAdapter.setData(SqliteAdapter.java:88) [16:31:29 WARN]: at Slimefun-226af9b-Beta_build180.jar//com.xzavier0722.mc.plugin.slimefun4.storage.controller.ADataController.lambda$scheduleWriteTask$1(ADataController.java:87) [16:31:29 WARN]: at Slimefun-226af9b-Beta_build180.jar//com.xzavier0722.mc.plugin.slimefun4.storage.task.QueuedWriteTask.run(QueuedWriteTask.java:24) [16:31:29 WARN]: at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) [16:31:29 WARN]: at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) [16:31:29 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) [16:31:29 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) [16:31:29 WARN]: at java.base/java.lang.Thread.run(Thread.java:1583) [16:31:29 WARN]: Caused by: org.sqlite.SQLiteException: [SQLITE_CONSTRAINT_FOREIGNKEY] A foreign key constraint failed (FOREIGN KEY constraint failed) [16:31:29 WARN]: at org.sqlite.core.DB.newSQLException(DB.java:1179) [16:31:29 WARN]: at org.sqlite.core.DB.newSQLException(DB.java:1190) [16:31:29 WARN]: at org.sqlite.core.DB.execute(DB.java:985) [16:31:29 WARN]: at org.sqlite.core.CoreStatement.exec(CoreStatement.java:79) [16:31:29 WARN]: at org.sqlite.jdbc3.JDBC3Statement.lambda$execute$0(JDBC3Statement.java:52) [16:31:29 WARN]: at org.sqlite.jdbc3.JDBC3Statement.withConnectionTimeout(JDBC3Statement.java:454) [16:31:29 WARN]: at org.sqlite.jdbc3.JDBC3Statement.execute(JDBC3Statement.java:40) [16:31:29 WARN]: at Slimefun-226af9b-Beta_build180.jar//com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) [16:31:29 WARN]: at Slimefun-226af9b-Beta_build180.jar//com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) [16:31:29 WARN]: at Slimefun-226af9b-Beta_build180.jar//com.xzavier0722.mc.plugin.slimefun4.storage.adapter.sqlcommon.SqlUtils.execSql(SqlUtils.java:148) [16:31:29 WARN]: at Slimefun-226af9b-Beta_build180.jar//com.xzavier0722.mc.plugin.slimefun4.storage.adapter.sqlcommon.SqlCommonAdapter.executeSql(SqlCommonAdapter.java:28) [16:31:29 WARN]: ... 9 more

问题复现率

必现

复现步骤

  1. 放置一个可编程式机器人
  2. 配置其运动操作,至少有一个向任意方向移动的步骤
  3. 将燃料给予机器人并使其开始工作
  4. 几秒后可看到控制台出现错误

服务端类型

Paper

Minecraft 版本

1.20.x

Slimefun 版本

2024.3 和 build 180

其他插件信息

No response

补充信息

No response

IXBOB commented 2 weeks ago

1.18.1和1.20.4均有此问题

zzj2039 commented 2 weeks ago

+1 我是1.20.1

zzj2039 commented 2 weeks ago

最新180构建问题依旧存在

IXBOB commented 2 weeks ago

一开始提交问题的时候版本写错成了170,应为180,已修正

StarWishsama commented 1 week ago

807