wenxiangchao
3 天以前 b544d5cccd76735e034c8055918a50927b437474
Plugin.DeviceDebug/Model/DebugSessionManager.cs
@@ -289,8 +289,10 @@
                        _resourceManager.ReleaseReservationAsync(
                            ownerToken, resourceKey, CancellationToken.None).GetAwaiter().GetResult();
                        _sessionOwnerTokens.Remove(sessionId);
                        log.Info($"已释放设备 {session.DeviceId} 的资源预约");
                        // 注意:不删除 _sessionOwnerTokens[sessionId]!
                        // 令牌必须保持稳定(TokenId 不变),否则下次进入维护时 new 出的新 Token
                        // 无法在 LayeredResourceManager._grantsByToken 中找到旧租约 → 释放落空 → 租约永久泄漏
                        log.Info($"已释放设备 {session.DeviceId} 的资源预约(令牌保留供复用)");
                    }
                    catch (Exception ex)
                    {