Skip to content

MYSQL频发主键重复报错(异域花园植物农场) #1023

@XXY233

Description

@XXY233

问题描述

当同时收货和催熟的异域花园植物过多时,粘液科技就会经常抛出MYSQL主键重复错误。

问题复现率

必现

复现步骤

  1. 建造很多的魔法植物和机器人,不停地收割和催熟(植物数量达到64个时容易复现,达到128个时容易刷屏)。
2025-02-22.14-03-53.mp4
  1. 后台报错。
[13:46:46] [SF-Database-Thread #23/ERROR]: [Slimefun] Exception thrown while executing write task: 
[13:46:46] [SF-Database-Thread #23/WARN]: java.lang.IllegalStateException: An exception thrown while executing sql: INSERT INTO slimefun_block_record (chunk, loc, sf_id) VALUES ('world;-9:-3', 'world;-129:65:-48', 'NETHERITE_ESSENCE');
[13:46:46] [SF-Database-Thread #23/WARN]: 	at Slimefun-3c3fb0d-Insider.jar//com.xzavier0722.mc.plugin.slimefun4.storage.adapter.sqlcommon.SqlCommonAdapter.executeSql(SqlCommonAdapter.java:48)
[13:46:46] [SF-Database-Thread #23/WARN]: 	at Slimefun-3c3fb0d-Insider.jar//com.xzavier0722.mc.plugin.slimefun4.storage.adapter.mysql.MysqlAdapter.setData(MysqlAdapter.java:87)
[13:46:46] [SF-Database-Thread #23/WARN]: 	at Slimefun-3c3fb0d-Insider.jar//com.xzavier0722.mc.plugin.slimefun4.storage.controller.ADataController.lambda$scheduleWriteTask$1(ADataController.java:88)
[13:46:46] [SF-Database-Thread #23/WARN]: 	at Slimefun-3c3fb0d-Insider.jar//com.xzavier0722.mc.plugin.slimefun4.storage.task.QueuedWriteTask.run(QueuedWriteTask.java:24)
[13:46:46] [SF-Database-Thread #23/WARN]: 	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
[13:46:46] [SF-Database-Thread #23/WARN]: 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
[13:46:46] [SF-Database-Thread #23/WARN]: 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[13:46:46] [SF-Database-Thread #23/WARN]: 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[13:46:46] [SF-Database-Thread #23/WARN]: 	at java.base/java.lang.Thread.run(Thread.java:1583)
[13:46:46] [SF-Database-Thread #23/WARN]: Caused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'world;-129:65:-48' for key 'slimefun_block_record.PRIMARY'
[13:46:46] [SF-Database-Thread #23/WARN]: 	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:109)
[13:46:46] [SF-Database-Thread #23/WARN]: 	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:113)
[13:46:46] [SF-Database-Thread #23/WARN]: 	at com.mysql.cj.jdbc.StatementImpl.executeInternal(StatementImpl.java:829)
[13:46:46] [SF-Database-Thread #23/WARN]: 	at com.mysql.cj.jdbc.StatementImpl.execute(StatementImpl.java:681)
[13:46:46] [SF-Database-Thread #23/WARN]: 	at Slimefun-3c3fb0d-Insider.jar//com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94)
[13:46:46] [SF-Database-Thread #23/WARN]: 	at Slimefun-3c3fb0d-Insider.jar//com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java)
[13:46:46] [SF-Database-Thread #23/WARN]: 	at Slimefun-3c3fb0d-Insider.jar//com.xzavier0722.mc.plugin.slimefun4.storage.adapter.sqlcommon.SqlUtils.execSql(SqlUtils.java:164)
[13:46:46] [SF-Database-Thread #23/WARN]: 	at Slimefun-3c3fb0d-Insider.jar//com.xzavier0722.mc.plugin.slimefun4.storage.adapter.sqlcommon.SqlCommonAdapter.executeSql(SqlCommonAdapter.java:46)
[13:46:46] [SF-Database-Thread #23/WARN]: 	... 8 more

服务端类型

Paper

Minecraft 版本

1.21.x

Slimefun 版本

> sf versions
[14:13:38 INFO]: Slimefun 运行的服务器环境:
Paper 1.21.1-123-aebbdc9 (MC: 1.21.1)
Slimefun 3c3fb0d-Insider
构建时间 2025-02-20 07:18:55
Java 21

由 StarWishsama 汉化
请不要将此版本信息截图到 Discord/Github 反馈 Bug
优先到汉化页面反馈

安装的附属插件: (2)
  GuizhanLibPlugin vBuild 58 (git e776d1e)
  ExoticGarden vBuild 19 (git 0994db4)

其他插件信息

No response

补充信息

  • 完整日志:https://mclo.gs/9ZQvmpF

  • block-storage.yml:

    storageType: MYSQL
    base64EncodeVal: true
    dataLoadMode: LOAD_WITH_CHUNK
    readExecutorThread: 15
    writeExecutorThread: 5
    delayedWriting:
      enable: true
      delayedSecond: 5
      forceSavePeriod: 300
    sqlite:
      maxConnection: 5
    mysql:
      host: localhost
      port: 3306
      database: test_sf_new
      tablePrefix: slimefun_
      user: root
      password: ''
      useSSL: false
      maxConnection: 10
    postgresql:
      host: 127.0.0.1
      port: 3306
      database: ''
      tablePrefix: ''
      user: ''
      password: ''
      useSSL: false
      maxConnection: 10
    
  • 复现大礼包:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions