#2055·skynet

session_id_coroutine 表中出现同一协程映射到多个会话ID的问题

Author: fantasytmCreated May 26, 2025Updated Aug 26, 2026

问题描述

在调试游戏服务器时,我们发现 session_id_coroutine 表中有时会出现同一个协程对象被映射到多个不同的会话ID的情况。这似乎是一个问题,因为每个协程在任意时刻应该只与一个会话ID关联。

问题影响

由于发生冲突的是协程是循环定时器协程,在定时器内发生的挂起行为,似乎会被提前唤醒,猜测是coroutine 被提前 resume,出现状态错乱

确认已排除的因素

  • 项目中未直接访问或修改 session_id_coroutine
  • 所有调用均使用 Skynet 提供的标准接口(如 skynet.sleep, skynet.call, skynet.timeout 等)
  • 问题并非频繁发生

现场截图

Image