g1331 / xiaomai-bot

以Graia Ariadne框架为基础的战地1QQ机器人
GNU General Public License v3.0
44 stars 7 forks source link

建议立刻升级到 Ariadne 到 0.9.10 或 0.10.2 #9

Closed ProgramRipper closed 1 year ago

ProgramRipper commented 1 year ago

您好,我是 GraiaProject 成员、Ariadne 贡献者 @ProgramRipper。

由于 Ariadne 0.9.0 中的修改 对好友,群,群成员和版本等信息使用缓存 (@ProgramRipper) 引入的 bug,Ariadne 会缓存全部好友、群、群成员、消息和版本信息,并且不会过期,导致严重的内存泄露。

这一问题已在 https://github.com/GraiaProject/Ariadne/pull/206https://github.com/GraiaProject/Ariadne/commit/3ad9a6109cc704e139315c637483f869f6beb13f (0.9 backport) 中修复,并随后发布了修复版本 Ariadne 0.10.2Ariadne 0.9.10

这一问题波及使用了 Ariadne 0.9.0~0.9.8, 0.10.0 的所有应用(只要接收消息就有内存泄露风险)。很遗憾,此仓库正受到此问题影响。您可以通过升级 Ariadne 来修复这一问题:

pip install --upgrade graia-ariadne
poetry update graia-ariadne
pdm update graia-ariadne
# pyproject.toml
## poetry
[tool.poetry.dependencies]
graia-ariadne = "^0.10.2"
### or backport...
graia-ariadne = "^0.9.10" 

## pdm
dependencies = [
    "graia-ariadne>=0.10.2",
    # ...
]
### or backport...
dependencies = [
    "graia-ariadne>=0.9.10",
    # ...
]
# requirements.txt
graia-ariadne==0.10.2
### or backport...
graia-ariadne==0.9.10

如果您的仓库中有 poetry.lock 或 pdm.lock 文件,也请不要忘记通过 poetry lockpdm lock 更新它们。

在此,我对此问题已造成的损失,以及因为此问题而耽误您的宝贵时间和精力而感到抱歉。如果您有更多问题,可以在此议题下回复,我将尽我所能提供解答、协助。