Closed rabbit-dayi closed 1 year ago
老问题,不正常关闭 mirai 时,配置文件有概率会因为自动保存机制“变成乱码”
+1,另外 AutoSavePluginConfig 和 AutoSavePluginData 也会因为在特定阶段重启(例如启动阶段)丢失原来的信息
看起来是需要加一个很简单的机制 即先写入文件名.tmp 再重命名然后删除文件
看起来是需要加一个很简单的机制 即先写入文件名.tmp 再重命名然后删除文件
你怎么知道你写入的tmp文件不会变成乱码呢~ 我的想法是,先写入 文件名.update 下次读取的时候 如果 “文件名.update” 校验通过,则修改文件名转正,否则以原来的文件名为准
哦,不过如果你确保.tmp写完后才会执行删除重命名,而不是之后,那确实没有问题,就怕外部因素的不可抗力,比如磁盘满,你只能写一半,你无法检测自己是否只写了一半,那就麻烦了
为什么这么极端呢?这不应该是mirai使用者考虑的问题吗,非得要硬盘到0字节可用出,mirai问题时候再清理吗( 在正常情况下,合理且规范的使用mirai基本上不会出问题。
为什么这么极端呢?这不应该是mirai使用者考虑的问题吗,非得要硬盘到0字节可用出,mirai问题时候再清理吗( 在正常情况下,合理且规范的使用mirai基本上不会出问题。
我记得有的bot框架,喜欢缓存图片还不清理,非得弄个脚本伺候着,要不然分分钟占满硬盘不是问题,如果服务器挂着其他bot框架。这种是很有可能的
看起来是需要加一个很简单的机制 即先写入文件名.tmp 再重命名然后删除文件
你怎么知道你写入的tmp文件不会变成乱码呢~ 我的想法是,先写入 文件名.update 下次读取的时候 如果 “文件名.update” 校验通过,则修改文件名转正,否则以原来的文件名为准
哦,不过如果你确保.tmp写完后才会执行删除重命名,而不是之后,那确实没有问题,就怕外部因素的不可抗力,比如磁盘满,你只能写一半,你无法检测自己是否只写了一半,那就麻烦了
有没有可能这会报异常呢( 总之我说的机制是有效的 实现起来也很简单 就几行代码 等有缘人PR吧
为什么这么极端呢?这不应该是mirai使用者考虑的问题吗,非得要硬盘到0字节可用出,mirai问题时候再清理吗( 在正常情况下,合理且规范的使用mirai基本上不会出问题。
合理规范的使用下,也丢过配置,确认过硬盘没有满。应该是老bug了,但是之前因为无法复现就没提issue
AutoSave 确实有人报告过会丢失数据, 但这个是另外的问题
问题描述
硬盘满载可能会导致autologin的配置丢失 0字节可用 强制重启电脑 可能会导致autologin配置丢失、也小概率可能会导致其他的插件配置丢失
复现
硬盘满载可能会导致autologin的配置丢失 0字节可用 强制重启电脑
可能会导致autologin配置丢失、也小概率可能会导致其他的插件配置丢失
mirai-core 版本
2.14.0
bot-protocol
ANDROID_PHONE
其他组件版本
Running MiraiConsole v2.14.0, built on 2023-02-06 14:25:21. Frontend Terminal: version 2.14.0, provided by Mamoe Technologies
Permission Service: Built In Permission Service
Plugins: rss-helper v1.4.0, MiraiWiki v2.0.2, SuperCourseTimetable(crashed_enable_error) v0.4.7, MiderBot v0.1.8, 抽老婆 v0.1.0, Control v0.3.0, fix-protocol-version v1.5.0, Setu v3.6.3, MaimaiBot v1.3.0, IlliteracyAuth v1.0.2, Loafers' Calender v1.8.1, NetworkTools v1.1.2, Chat Command v0.5.0, 点歌插件 v1.2.0, mirai-administrator v1.3.1, ApexLookUp v1.6.1, PetPet v5.3, Random Animals v1.0.1, mirai-api-http v2.9.1, Better help v1.0.1, OneBot v0.3.4, mirai-console-minecraft-motd v0.1.2, MCL Addon v2.1.1
Object Pending Finalization Count: 0 committed | init | used | max Heap Memory: 1.11GB | 188.0MB | 613.77MB | 2.91GB Non-Heap Memory: 145.25MB | 7.31MB | 141.75MB | -1
系统日志
网络日志
No response
补充信息
蟹蟹,不知道是不是应该反馈,如果不适合反馈,请直接close