QuickBackupMultiMod-Dev / QuickBackupM-Fabric

A backup / restore mod, with multiple backup slots
Apache License 2.0
46 stars 9 forks source link

客户端输入/qb make后一直提示正在备份 #37

Closed Rushbe2021 closed 3 months ago

Rushbe2021 commented 3 months ago

Bug description / Bug描述

客户端输入/qb make后一直提示正在备份,服务端输入/qb make后直接崩溃。现在world文件夹整个大小为5个g左右。 不知道是什么问题,之前都存的好好的 下面是服务端输入/qb make后的错误报告:

[14:15:53] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.OutOfMemoryError: Required array size too large
        at java.nio.file.Files.readAllBytes(Files.java:3294) ~[?:?]
        at dev.skydynamic.quickbackupmulti.utils.hash.HashUtils.getFileHash(HashUtils.java:13) ~[%5Bʵáλ%5DQuickBackupMulti-mc1.20-v2.0.5.jar:?]
        at dev.skydynamic.quickbackupmulti.utils.MakeUtils.compareAndIndex(MakeUtils.java:90) ~[%5Bʵáλ%5DQuickBackupMulti-mc1.20-v2.0.5.jar:?]
        at dev.skydynamic.quickbackupmulti.utils.MakeUtils.make(MakeUtils.java:198) ~[%5Bʵáλ%5DQuickBackupMulti-mc1.20-v2.0.5.jar:?]
        at dev.skydynamic.quickbackupmulti.command.MakeCommand$makeRunnable.run(MakeCommand.java:30) ~[%5Bʵáλ%5DQuickBackupMulti-mc1.20-v2.0.5.jar:?]
        at dev.skydynamic.quickbackupmulti.command.MakeCommand.makeSaveBackup(MakeCommand.java:48) ~[%5Bʵáλ%5DQuickBackupMulti-mc1.20-v2.0.5.jar:?]
        at dev.skydynamic.quickbackupmulti.command.MakeCommand.lambda$static$0(MakeCommand.java:38) ~[%5Bʵáλ%5DQuickBackupMulti-mc1.20-v2.0.5.jar:?]
        at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:264) ~[brigadier-1.1.8.jar:?]
        at net.minecraft.class_2170.redirect$zfl000$architectury$performCommand(class_2170.java:545) ~[server-intermediary.jar:?]
        at net.minecraft.class_2170.method_9249(class_2170.java:287) ~[server-intermediary.jar:?]
        at net.minecraft.class_2170.method_44252(class_2170.java:280) ~[server-intermediary.jar:?]
        at net.minecraft.class_3176.method_13941(class_3176.java:299) ~[server-intermediary.jar:?]
        at net.minecraft.class_3176.method_3813(class_3176.java:284) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:824) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.handler$zke000$carpet$modifiedRunLoop(MinecraftServer.java:14942) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:650) ~[server-intermediary.jar:?]
        at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:265) ~[server-intermediary.jar:?]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
[14:15:53] [Server thread/ERROR]: This crash report has been saved to: C:\Users\mayiq\3D Objects\MCSManager-v10-windows-x64\mcsmanager\daemon\data\InstanceData\8dde
06a0d5624a8891c8880db2a5b2d0\.\crash-reports\crash-2024-06-29_14.15.53-server.txt
[14:15:53] [Server thread/INFO]: Stopping server
[14:15:53] [Server thread/INFO]: Saving players
[14:15:53] [Server thread/INFO]: Saving worlds
[14:15:53] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld
[14:15:53] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end
[14:15:53] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether
[14:15:53] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved
[14:15:53] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
[14:15:53] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[14:15:53] [Server thread/INFO]: ThreadedAnvilChunkStorage: All dimensions are saved
[14:15:53] [mongo-server-worker3/INFO]: channel [id: 0xd15c1cd7, L:/127.0.0.1:52960 ! R:/127.0.0.1:52975] closed
[14:15:53] [mongo-server-worker1/INFO]: channel [id: 0x1195c3c7, L:/127.0.0.1:52960 ! R:/127.0.0.1:52962] closed
[14:15:53] [mongo-server-worker2/INFO]: channel [id: 0x5edc47d0, L:/127.0.0.1:52960 ! R:/127.0.0.1:52961] closed
[14:15:53] [Server thread/INFO]: closing server channel
[14:15:53] [Server thread/INFO]: closing H2Backend[./QuickBackupMulti/qbm.mv]
[14:15:53] [Server thread/INFO]: completed shutdown of MongoServer()

Steps to reproduce / 复现步骤

有点难复现

Expected behavior / 预期行为

No response

Actual behavior / 实际情况

No response

Relevant logs / 相关日志

2024-06-29-7.log

Minecraft version / Minecraft版本

1.20.1

Mod version / Mod版本

2.0.5

Other information / 其他信息

No response

Check list

SkyDynamic commented 3 months ago

怎么还能爆OOM的

Rushbe2021 commented 3 months ago

这个是什么引起的,现在可以手动修复吗,还是说等更新

SkyDynamic commented 3 months ago

这个是什么引起的,现在可以手动修复吗,还是说等更新

等更新吧,新版本进行了大量代码重构,把一个库分离出来了,这样子比较容易维护

Zhaosn commented 3 months ago

遇见了同样的问题,之前存档待备份的数据约2G,后来删区块至241MB仍有问题。 问题有点复杂: 新创建超平坦存档(小存档)可以备份 切换到大存档执行/qb make会在大存档备份路径下备份小存档 <--bug 通过“嫁接”大存档文件到小存档,在没有破坏方块的情况下可以增量备份,但回退到这个增量需要的时间漫长到也许属于bug 大存档破坏方块后还是会出现内存问题

在找到这个issue后发现最近提交是两天前,还没有可下载的模组(我游戏版本是1.18.2),于是我下载了 #38 位置的项目,也是第一次按教程编译模组,直接在终端执行bat我的java版本没配置好,用idea也一头雾水,期待能早日试验新版本,谢谢

SkyDynamic commented 3 months ago

在找到这个issue后发现最近提交是两天前,还没有可下载的模组(我游戏版本是1.18.2),于是我下载了 #38 位置的项目,也是第一次按教程编译模组,直接在终端执行bat我的java版本没配置好,用idea也一头雾水,期待能早日试验新版本,谢谢

@Zhaosn 本项目是有github CI的,你可以去该项目的action栏里面去找最新的自动构建,里面有的下,不建议用户自己构建新版