Skip to content

fix(timer): 修复qq离线时定时器空指针崩溃 - #1321

Open
Kajiekazz wants to merge 1 commit into
FloatTech:masterfrom
Kajiekazz:fix/timer-nil-bot
Open

Kajiekazz wants to merge 1 commit into
FloatTech:masterfrom
Kajiekazz:fix/timer-nil-bot

Conversation

@Kajiekazz

Copy link
Copy Markdown
Contributor

问题

群管定时器绑定的 QQ 未连接或已断线时,zero.GetBot(SelfID) 会返回 nil。sendmsg 未检查空值便访问 ctx.Event,导致空指针 panic,进程退出。

另外,cron 在注册任务时缓存 bot 上下文。如果注册时账号尚未连接,即使之后上线,任务仍使用原来的空上下文。

修改

  • 在 sendmsg 中增加空值检查,账号不可用时跳过发送,保护普通定时器和 cron 两条路径。
  • 绑定账号的 cron 在每次执行时重新获取 bot 上下文,使账号上线或重连后能够恢复发送。
  • 使用局部变量保存本次获取的上下文,避免并发执行时修改共享的 ctx。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant