Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

命令-刷新原神地图,导致Hoshino崩溃 #52

Open
xulai1001 opened this issue Sep 25, 2021 · 18 comments
Open

命令-刷新原神地图,导致Hoshino崩溃 #52

xulai1001 opened this issue Sep 25, 2021 · 18 comments
Labels
enhancement New feature or request 地图相关 与资源地图相关的Issues/PRs
Milestone

Comments

@xulai1001
Copy link

调用命令 刷新原神地图时,报错 Image size (XXX pixels) exceeds limit of 178956970 pixels, could be decompression
加上Image.MAX_IMAGE_PIXELS = None之后,hoshino直接崩溃
推测是新版原神地图过大?

hoshino-env_1 | [2021-09-25 22:09:35,605 nonebot] INFO: Self: 330071, Message 1133240255 from 18673@[群:284****59]: '更新原神地图'
hoshino-env_1 | [2021-09-25 22:09:35,606 原神资源查询] INFO: Message 1133240255 triggered up_map_icon by PrefixTrigger.
hoshinobot_hoshino-env_1 exited with code 137

@H-K-Y
Copy link
Owner

H-K-Y commented Sep 25, 2021

git pull到最新的版本

@xulai1001
Copy link
Author

已经pull了。可能是服务器内存不够……?

@H-K-Y
Copy link
Owner

H-K-Y commented Sep 25, 2021

服务器什么配置的,1G内存的估计跑不动

@xulai1001
Copy link
Author

确实内存太小……(没想到确实是内存问题
在自己电脑上重新生成了一遍地图(最终尺寸6MB)传到服务器上,跳过生成步骤,问题解决。可以close了。
我如果不再调用“刷新原神地图”命令,他应该不会自己去再次尝试生成吧?
辛苦dalao了!

@H-K-Y
Copy link
Owner

H-K-Y commented Sep 25, 2021

不是的,为了减小贴图的计算量,每次更新资源点列表都会重新下载地图裁切没用的边缘数据保存,
建议还是把服务器升级到2G内存吧

@H-K-Y
Copy link
Owner

H-K-Y commented Sep 25, 2021

而且你用的是最新的版本吗,最新版本地图裁切玩应该是不到3MB的

@xulai1001
Copy link
Author

xulai1001 commented Sep 25, 2021

服务器是2G内存的
感觉还是哪里不对劲。又用top看了一下。
平时没有内存开销,运行这个命令时 内存消耗会瞬间到达1G然后被kill掉……
本地生成地图是刚clone的最新版本

@H-K-Y
Copy link
Owner

H-K-Y commented Sep 25, 2021

原始图像读进来会先裁切一次然后后续的地图生成用的是裁切后的图像,原始图像读进来确实得1G内存占用,裁切后占用内存大概是200多MB,所以就常驻内存了
你不会自己改过代码逻辑吧,实在不行你把插件删了重新安装一下

@xulai1001
Copy link
Author

没改过代码逻辑……
map_icon
up_map生成的大地图文件,尺寸为16384x16384 但是有内容的范围只有约9000x9000

@H-K-Y
Copy link
Owner

H-K-Y commented Sep 25, 2021

这个文件现在不会生成了啊,你用的真的是最新版吗..............

@xulai1001
Copy link
Author

新版代码里把保存这个文件的步骤注释掉了。我把它取消了存下来看了一下……
我再想想是哪一步内存不够。可能在处理比这个大图小的部分时就不够了……

@xulai1001
Copy link
Author

xulai1001 commented Sep 25, 2021

好吧现在彻底改坏了。
新版代码每次启动的时候都会抓16k的原图下来裁切。这时候就直接内存炸了 hoshino都无法启动了
反而是用map_icon.jpg的老版本起码能够正常启动……

我明天再试试吧。

@H-K-Y
Copy link
Owner

H-K-Y commented Sep 25, 2021

因为新版本的资源列表要和裁切后的地图匹配,所以每次更新都得重下地图,
是日志打出正在更新地图就炸了吗

@xulai1001
Copy link
Author

是的

@xulai1001
Copy link
Author

xulai1001 commented Sep 27, 2021

pillow确定是爆炸了……尝试了一下pyvips,生成裁切后的大地图只花了192MB内存
等会再试试贴图
他并没有直接支持alpha贴图……喷血

@xulai1001
Copy link
Author

换了一个思路。直接预处理所有图片,查询时返回图片即可。
pyvips也暂时用不上了
#56

@eldridgec
Copy link

大佬,我也是1G小服务器,直接首次启动加载地图的时候就被KILL了

@eldridgec
Copy link

请问nonebot2版的可以单独把地图功能关闭吗,或者有其他解决方案

@1shin-7 1shin-7 added this to the LTS milestone Feb 2, 2023
@1shin-7 1shin-7 added enhancement New feature or request 地图相关 与资源地图相关的Issues/PRs labels Feb 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request 地图相关 与资源地图相关的Issues/PRs
Projects
None yet
Development

No branches or pull requests

4 participants