MC-XiaoHei/ISeeYou

运行报错

qianqi32 opened this issue · 13 comments

核心是1.20.4,iseeyou版本是1.2.1
完整日志:https://mclo.gs/k1UqDGj
插件列表:

[00:51:24] [Paper Watchdog Thread/ERROR]: --- DO NOT REPORT THIS TO LEAVES - THIS IS NOT A BUG OR A CRASH  - git-Leaves-"e7c14b8" (MC: 1.20.4) ---
[00:51:24] [Paper Watchdog Thread/ERROR]: The server has not responded for 10 seconds! Creating thread dump
[00:51:24] [Paper Watchdog Thread/ERROR]: ------------------------------
[00:51:24] [Paper Watchdog Thread/ERROR]: Server thread dump (Look for plugins here before reporting to Leaves!):
[00:51:24] [Paper Watchdog Thread/ERROR]: ------------------------------
[00:51:24] [Paper Watchdog Thread/ERROR]: Current Thread: Server thread
[00:51:24] [Paper Watchdog Thread/ERROR]: 	PID: 80 | Suspended: false | Native: false | State: WAITING
[00:51:24] [Paper Watchdog Thread/ERROR]: 	Stack:
[00:51:24] [Paper Watchdog Thread/ERROR]: 		java.base@21.0.2/jdk.internal.misc.Unsafe.park(Native Method)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		java.base@21.0.2/java.util.concurrent.locks.LockSupport.park(LockSupport.java:221)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		java.base@21.0.2/java.util.concurrent.CompletableFuture$Signaller.block(CompletableFuture.java:1864)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		java.base@21.0.2/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3780)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		java.base@21.0.2/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3725)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		java.base@21.0.2/java.util.concurrent.CompletableFuture.waitingGet(CompletableFuture.java:1898)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		java.base@21.0.2/java.util.concurrent.CompletableFuture.join(CompletableFuture.java:2117)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		top.leavesmc.leaves.replay.ServerPhotographer.remove(ServerPhotographer.java:141)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		top.leavesmc.leaves.entity.CraftPhotographer.stopRecording(CraftPhotographer.java:31)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		top.leavesmc.leaves.entity.CraftPhotographer.stopRecording(CraftPhotographer.java:26)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		[玩家录像]ISeeYou-1.2.1-all.jar//cn.xor7.iseeyou.EventListener.onPlayerQuit(EventListener.kt:117)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor666.execute(Unknown Source)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:59)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:126)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:615)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		net.minecraft.server.players.PlayerList.remove(PlayerList.java:794)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		net.minecraft.server.players.PlayerList.remove(PlayerList.java:778)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		net.minecraft.server.network.ServerGamePacketListenerImpl.removePlayerFromWorld(ServerGamePacketListenerImpl.java:2103)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		net.minecraft.server.network.ServerGamePacketListenerImpl.onDisconnect(ServerGamePacketListenerImpl.java:2083)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		net.minecraft.server.network.ServerGamePacketListenerImpl.onDisconnect(ServerGamePacketListenerImpl.java:2070)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		net.minecraft.network.Connection.handleDisconnection(Connection.java:847)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		net.minecraft.server.network.ServerConnectionListener.tick(ServerConnectionListener.java:254)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1732)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:451)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1519)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1226)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:314)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		net.minecraft.server.MinecraftServer$$Lambda/0x0000025930c3c6d0.run(Unknown Source)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		java.base@21.0.2/java.lang.Thread.runWith(Thread.java:1596)
[00:51:24] [Paper Watchdog Thread/ERROR]: 		java.base@21.0.2/java.lang.Thread.run(Thread.java:1583)
[00:51:24] [Paper Watchdog Thread/ERROR]: ------------------------------
[00:51:24] [Paper Watchdog Thread/ERROR]: --- DO NOT REPORT THIS TO LEAVES - THIS IS NOT A BUG OR A CRASH ---

没有异步保存录像文件导致的,native等待挂死了。

以下为辅助判断,请 @qianqi32 复制并在符合条件的项打勾。

- [x] 打勾示例
- [ ] 复现率不是很高
- [ ] 玩家退出前游玩时间较长
- [ ] 在录像文件夹底下发现了较大的 `.tmp` 文件

另:下次粘贴日志请放在代码块内,语法参阅 markdown 语法。

没有异步保存录像文件导致的,native等待挂死了。

以下为辅助判断,请 @qianqi32 复制并在符合条件的项打勾。

- [x] 打勾实例
- [ ] 复现率不是很高
- [ ] 玩家退出前游玩时间较长
- [ ] 在录像文件夹底下发现了较大的 `.tmp` 文件

另:下次粘贴日志请放在代码块内,语法参阅 markdown 语法。

  • 复现率不是很高
  • 玩家退出前游玩时间较长
  • 在录像文件夹底下发现了较大的 .tmp 文件

那没问题了。等小黑修吧。

另 我的意思其实是这样打勾:

  • 例子

哦不对,是leaves的锅。这个函数是leaves的。有结果的话我把1.20.4的这种修复版发出来吧。

可以上传一下你的配置文件吗?
你可能关闭了异步保存

哦不对,是leaves的锅。这个函数是leaves的。有结果的话我把1.20.4的这种修复版发出来吧。

是icu的问题 leaves提供了异步保存 但icu使用了同步方法

异步保存的配置项默认为asyncSave = false,可以先改为true试试?

哦不对,是leaves的锅。这个函数是leaves的。有结果的话我把1.20.4的这种修复版发出来吧。

是icu的问题 leaves提供了异步保存 但icu使用了同步方法

异步保存的配置项默认为asyncSave = false,可以先改为true试试?

仍然会出现报错

[13:12:19 ERROR]: [Leaves] Error saving packet
[13:12:19 WARN]: java.util.ConcurrentModificationException
[13:12:19 WARN]:        at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1095)
[13:12:19 WARN]:        at java.base/java.util.ArrayList$Itr.next(ArrayList.java:1049)
[13:12:19 WARN]:        at net.minecraft.network.protocol.game.PacketPlayOutEntityMetadata.a(PacketPlayOutEntityMetadata.java:17)
[13:12:19 WARN]:        at net.minecraft.network.protocol.game.PacketPlayOutEntityMetadata.a(PacketPlayOutEntityMetadata.java:38)
[13:12:19 WARN]:        at top.leavesmc.leaves.replay.ReplayFile.getPacketBytes(ReplayFile.java:74)
[13:12:19 WARN]:        at top.leavesmc.leaves.replay.ReplayFile.savePacket(ReplayFile.java:100)
[13:12:19 WARN]:        at top.leavesmc.leaves.replay.Recorder.lambda$savePacket$2(Recorder.java:209)
[13:12:19 WARN]:        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
[13:12:19 WARN]:        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
[13:12:19 WARN]:        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[13:12:19 WARN]:        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[13:12:19 WARN]:        at java.base/java.lang.Thread.run(Thread.java:1583)

已解决

不好意思,我这边测试等待时间较短,过了一会仍然会出问题
完整日志文件:https://mclo.gs/29cKTaw

感觉是leaves提供的异步保存方法的问题)
等小黑吧abab

小黑明天就能等到了。要是我有空我就修掉了。

这个事情有点麻烦了。

这玩意主要是因为两个原因

  • 录制文件没切片
  • leaves异步保存有问题

我可能会把切片做了,这样能一定程度上解决问题,但不治本、