fix(web-core/console): stop reconnecting the console on every VM update (#10672)

`VtsRemoteConsole` watched `[consoleContainer, …]` where `consoleContainer`
comes from `useTemplateRef`, i.e. a shallow ref. Vue forces a multi-source
watch to run its callback when one of the sources is a shallow ref, even if
no value has changed. The parent page builds a new (identical) `URL` object
on each VM update, so every SSE update tore down and recreated the VNC
connection.

This was mostly visible while a VM boots (Windows especially), because the VM
gets updated every few hundred milliseconds then.

Watching `() => consoleContainer.value` restores the normal value comparison.
This commit is contained in:
Florent BEAUCHAMP
2026-10-28 11:12:49 +01:00
committed by GitHub
parent 5385f9f229
commit a953ca748d
2 changed files with 4 additions and 1 deletions

View File

@@ -116,8 +116,10 @@ whenever(
}
)
// `consoleContainer` is a shallow ref: passing it directly in a multi-source watch forces the callback
// to run each time `url` gets a new (but identical) URL object, which reconnected the console on every VM update
watch(
[consoleContainer, () => isConsoleAvailable, () => url.toString()],
[() => consoleContainer.value, () => isConsoleAvailable, () => url.toString()],
([container, isAvailable]) => {
if (container === null || !isAvailable) {
return

View File

@@ -32,6 +32,7 @@
- Fix `cannot read properties of undefined (reading code)` (PR [#10668](https://github.com/vatesfr/xen-orchestra/pull/10668))
- [SDN Controller] A Global Private Network that fails to be set up, or whose preferred star-center host was removed, no longer blocks the other private networks (PR [#10629](https://github.com/vatesfr/xen-orchestra/pull/10629))
- [XO6] Fix console flickering during boot (PR [#10672](https://github.com/vatesfr/xen-orchestra/pull/10672))
- [V2V] Fix the migration of a running VM whose change tracking (CBT) is not enabled failing on ESXi 7 and 8 once the source is stopped: the change tracking is now enabled on the source VM, so that only the used blocks are read, and only the changed ones for the delta. A partial import made before can't be resumed and is transferred again (PR [#10637](https://github.com/vatesfr/xen-orchestra/pull/10637))
### Packages to release