consoleproxy.session.timeout is honoured for noVNC sessions but not legacy VNC/RDP/AJAX viewers
還沒有人認領這個 Issue。
評估
研究方向
先閱讀 ConsoleProxyVncClient、ConsoleProxyRdpClient 和 ConsoleProxyNoVncClient 中的 ConsoleProxy.VIEWER_LINGER_SECONDS、ConsoleProxy.sessionTimeoutMillis 及 isFrontEndAlive()。將 consoleproxy.session.timeout 設定為高於 180000 ms 以重現問題,然後確認 legacy VNC、RDP、AJAX 和 noVNC 工作階段是否都使用設定的閒置逾時,而不是另外的 180 秒門檻。
由索引模型根據 Issue 內容生成。
描述
problem
consoleproxy.session.timeout is now honoured for noVNC console sessions (#12810, PR #13058), but VNC/RDP/AJAX-based console viewers still rely on a separate, hardcoded idle threshold: ConsoleProxy.VIEWER_LINGER_SECONDS (180 seconds), used by isFrontEndAlive() in ConsoleProxyVncClient, ConsoleProxyRdpClient, and ConsoleProxyNoVncClient.
This means the effective idle timeout for a console session now depends on which viewer/hypervisor path served it:
- noVNC sessions: idle timeout follows the configured
consoleproxy.session.timeout(both viaConsoleProxyGCThreadand, since PR #13058, the WebSocket session's own idle timeout). - Legacy VNC/RDP/AJAX sessions: idle timeout is still fixed at 180 seconds regardless of the
consoleproxy.session.timeoutsetting.
An admin who sets consoleproxy.session.timeout to, say, 30 minutes to keep long-idle sessions open will still see legacy VNC/RDP/AJAX sessions get dropped after 3 minutes — an inconsistency that's confusing and undocumented.
versions
ACS 4.20+ (any branch carrying the PR #13058 / equivalent noVNC timeout fix)
The steps to reproduce the bug
- Set the global setting
consoleproxy.session.timeoutto a value well above 180000 ms (e.g. 1800000 ms / 30 minutes). - Open a console session that uses the legacy VNC/RDP/AJAX path (e.g. a hypervisor or console mode that doesn't route through noVNC).
- Leave the session idle.
- Observe the session is torn down after ~180 seconds, not after the configured
consoleproxy.session.timeout. - Compare against a noVNC console session under the same setting, which correctly honours the configured value.
What to do about it?
Derive VIEWER_LINGER_SECONDS from the same configured consoleproxy.session.timeout value (ConsoleProxy.sessionTimeoutMillis) instead of keeping it as an independent hardcoded constant, so all console viewer types (noVNC, VNC, RDP, AJAX) honour one single, consistently-configured idle timeout.
This was flagged during review of PR #13058 (https://github.com/apache/cloudstack/pull/13058#discussion_r3309508273) but deliberately left out of that PR's scope, since it's a noVNC-focused backport and touching isFrontEndAlive() for the legacy viewer types is a broader behavioural change that deserves its own review/testing pass.
- 主要語言
- Java
- 星號
- 3.1k
- 分支
- 1.4k
- 平均合併
- 6 天 20 小時
- 30 天內合併 PR
- 27
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
apache/cloudstack 的其他 Issue
-
bug
難度 1/5 1 小時以內 新手友好度 90/100
apache/cloudstack#14222 ·
-
bug component:kubernetes
難度 1/5 1 小時以內 新手友好度 88/100
apache/cloudstack#14180 ·
-
bug component:projects component:UI
難度 1/5 1 小時以內 新手友好度 88/100
apache/cloudstack#14070 · 5 則留言 ·
-
component:backup
難度 2/5 1-3 小時 新手友好度 76/100
apache/cloudstack#14013 ·
-
KVM agent fails to connect to Ceph RBD storage pool after upgrading Ceph client to Tentacle 20.2.4 未關閉bug component:ceph
難度 2/5 1-3 小時 新手友好度 78/100
apache/cloudstack#13989 · 3 則留言 ·
查看 apache/cloudstack 的全部 Issue
相似的 Issue
-
certification
難度 1/5 1 小時以內 新手友好度 80/100
-
難度 2/5 1-3 小時 新手友好度 75/100
-
[BUG] ECR GetAuthorizationToken returns a proxyEndpoint for the default region, not the request's 未關閉bug ecr
難度 2/5 1-3 小時 新手友好度 75/100
-
Needs: Triage Type: Feature request
難度 2/5 1-3 小時 新手友好度 70/100
AntennaPod/AntennaPod#8794 ·
-
agentic-workflows
難度 2/5 1-3 小時 新手友好度 65/100
github/copilot-sdk#2760 ·