-
Bug
-
Resolution: Done-Errata
-
Normal
-
None
-
False
-
-
False
-
CLOSED
-
---
-
---
-
-
-
Medium
-
None
+++ This bug was initially created as a clone of Bug #2136425 +++
Created attachment 1919209 [details]
screenshot
Description of problem:
In the VM Overview, a Windows 11 VM is shown as "Operating system Windows 10 Pro"
Version-Release number of selected component (if applicable):
OpenShift Virtualization 4.11.1-42 and virtio-win 1.9.24
Steps to Reproduce:
1. Create a Windows 11 VM with guest agent installed, e.g. using the attached yaml
2. Have a look at the Overview tab of the VM in the UI
3.
Actual results:
Windows 11 VM is shown as "Operating system Windows 10 Pro"
Expected results:
Windows 11 VM is shown as "Operating system Windows 11 Pro"
— Additional comment from Dominik Holler on 2022-10-20 17:16:01 CST —
— Additional comment from Guohua Ouyang on 2022-10-20 20:31:17 CST —
This looks like a backend issue to me, I will test it before move to virt.
— Additional comment from Aviv Turgeman on 2022-10-23 19:08:49 CST —
Hi Dominik thanks for opening this issue,
I have a follow-up question, if you switch between the VM's tabs
— Additional comment from Aviv Turgeman on 2022-10-23 19:13:06 CST —
(In reply to Aviv Turgeman from comment #3)
> Hi Dominik thanks for opening this issue,
>
> I have a follow-up question, if you switch between the VM's tabs
if you switch between the VM's tabs does the operating system info changes? this might point to a UI issue
— Additional comment from Dominik Holler on 2022-10-24 16:20:54 CST —
The UI seems to get this value from kubevirt's VMI, the VMI seems to get this value from the qemu-guest-agent:
[dominik@p1gen3 yaml]$ oc get pods
NAME READY STATUS RESTARTS AGE
virt-launcher-rhel9-married-tarantula-2vs7p 1/1 Running 0 29m
virt-launcher-win11-vm0-l7zx6 3/3 Running 0 80m
[dominik@p1gen3 yaml]$ oc exec --stdin --tty virt-launcher-win11-vm0-l7zx6 – virsh qemu-agent-command default_win11-vm0 '{"execute":"guest-get-osinfo", "arguments":{}}'
Defaulting container name to compute.
Use 'oc describe pod/virt-launcher-win11-vm0-l7zx6 -n default' to see all of the containers in this pod.
Authorization not available. Check if polkit service is running or see debug message for more information.
{"return":{"name":"Microsoft Windows","kernel-release":"22621","version":"Microsoft Windows 11","variant":"client","pretty-name":"Windows 10 Pro","version-id":"11","variant-id":"client","kernel-version":"10.0","machine":"x86_64","id":"mswindows"}}
[dominik@p1gen3 yaml]$ oc exec --stdin --tty virt-launcher-win11-vm0-l7zx6 – virsh qemu-agent-command default_win11-vm0 '{"execute":"guest-info", "arguments":{}}'
Defaulting container name to compute.
Use 'oc describe pod/virt-launcher-win11-vm0-l7zx6 -n default' to see all of the containers in this pod.
Authorization not available. Check if polkit service is running or see debug message for more information.
{"return":{"version":"102.10.0","supported_commands":[
,
{"enabled":true,"name":"guest-get-osinfo","success-response":true},
{"enabled":true,"name":"guest-get-timezone","success-response":true},
{"enabled":true,"name":"guest-get-users","success-response":true},
{"enabled":true,"name":"guest-get-host-name","success-response":true},
{"enabled":true,"name":"guest-exec","success-response":true},
{"enabled":true,"name":"guest-exec-status","success-response":true},
{"enabled":false,"name":"guest-get-memory-block-info","success-response":true},
{"enabled":false,"name":"guest-set-memory-blocks","success-response":true},
{"enabled":false,"name":"guest-get-memory-blocks","success-response":true},
{"enabled":true,"name":"guest-set-user-password","success-response":true},
{"enabled":true,"name":"guest-get-fsinfo","success-response":true},
{"enabled":true,"name":"guest-get-disks","success-response":true},
{"enabled":false,"name":"guest-set-vcpus","success-response":true},
{"enabled":true,"name":"guest-get-vcpus","success-response":true},
{"enabled":true,"name":"guest-network-get-interfaces","success-response":true},
{"enabled":false,"name":"guest-suspend-hybrid","success-response":false},
{"enabled":true,"name":"guest-suspend-ram","success-response":false},
{"enabled":true,"name":"guest-suspend-disk","success-response":false},
{"enabled":true,"name":"guest-fstrim","success-response":true},
{"enabled":true,"name":"guest-fsfreeze-thaw","success-response":true},
{"enabled":true,"name":"guest-fsfreeze-freeze-list","success-response":true},
{"enabled":true,"name":"guest-fsfreeze-freeze","success-response":true},
{"enabled":true,"name":"guest-fsfreeze-status","success-response":true},
{"enabled":true,"name":"guest-file-flush","success-response":true},
{"enabled":true,"name":"guest-file-seek","success-response":true},
{"enabled":true,"name":"guest-file-write","success-response":true},
{"enabled":true,"name":"guest-file-read","success-response":true},
{"enabled":true,"name":"guest-file-close","success-response":true},
{"enabled":true,"name":"guest-file-open","success-response":true},
{"enabled":true,"name":"guest-shutdown","success-response":false},
{"enabled":true,"name":"guest-info","success-response":true},
{"enabled":true,"name":"guest-set-time","success-response":true},
{"enabled":true,"name":"guest-get-time","success-response":true},
{"enabled":true,"name":"guest-ping","success-response":true},
{"enabled":true,"name":"guest-sync","success-response":true},
{"enabled":true,"name":"guest-sync-delimited","success-response":true}]}}
Vadim, is the qemu-guest-agent expected to provide a pretty-name for Windows 11?
— Additional comment from Dominik Holler on 2022-10-24 16:47:41 CST —
same behavior on guest agent 104 from virtio-win 1.9.28 :
[dominik@p1gen3 yaml]$ oc get pods
NAME READY STATUS RESTARTS AGE
virt-launcher-rhel9-married-tarantula-2vs7p 1/1 Running 0 57m
virt-launcher-win11-vm0-szkfs 3/3 Running 0 2m9s
[dominik@p1gen3 yaml]$ oc exec --stdin --tty virt-launcher-win11-vm0-szkfs – virsh qemu-agent-command default_win11-vm0 '{"execute":"guest-get-osinfo", "arguments":{}}'
Defaulting container name to compute.
Use 'oc describe pod/virt-launcher-win11-vm0-szkfs -n default' to see all of the containers in this pod.
Authorization not available. Check if polkit service is running or see debug message for more information.
{"return":{"name":"Microsoft Windows","kernel-release":"22621","version":"Microsoft Windows 11","variant":"client","pretty-name":"Windows 10 Pro","version-id":"11","variant-id":"client","kernel-version":"10.0","machine":"x86_64","id":"mswindows"}}
[dominik@p1gen3 yaml]$ oc exec --stdin --tty virt-launcher-win11-vm0-szkfs – virsh qemu-agent-command default_win11-vm0 '{"execute":"guest-info", "arguments":{}}'
+Defaulting container name to compute.
Use 'oc describe pod/virt-launcher-win11-vm0-szkfs -n default' to see all of the containers in this pod.
++Authorization not available. Check if polkit service is running or see debug message for more information.
{"return":{"version":"104.0.2","supported_commands":[
,
{"enabled":true,"name":"guest-get-osinfo","success-response":true},
{"enabled":true,"name":"guest-get-timezone","success-response":true},
{"enabled":true,"name":"guest-get-users","success-response":true},
{"enabled":true,"name":"guest-get-host-name","success-response":true},
{"enabled":true,"name":"guest-exec","success-response":true},
{"enabled":true,"name":"guest-exec-status","success-response":true},
{"enabled":false,"name":"guest-get-memory-block-info","success-response":true},
{"enabled":false,"name":"guest-set-memory-blocks","success-response":true},
{"enabled":false,"name":"guest-get-memory-blocks","success-response":true},
{"enabled":true,"name":"guest-set-user-password","success-response":true},
{"enabled":true,"name":"guest-get-fsinfo","success-response":true},
{"enabled":true,"name":"guest-get-disks","success-response":true},
{"enabled":false,"name":"guest-set-vcpus","success-response":true},
{"enabled":true,"name":"guest-get-vcpus","success-response":true},
{"enabled":true,"name":"guest-network-get-interfaces","success-response":true},
{"enabled":false,"name":"guest-suspend-hybrid","success-response":false},
{"enabled":true,"name":"guest-suspend-ram","success-response":false},
{"enabled":true,"name":"guest-suspend-disk","success-response":false},
{"enabled":true,"name":"guest-fstrim","success-response":true},
{"enabled":true,"name":"guest-fsfreeze-thaw","success-response":true},
{"enabled":true,"name":"guest-fsfreeze-freeze-list","success-response":true},
{"enabled":true,"name":"guest-fsfreeze-freeze","success-response":true},
{"enabled":true,"name":"guest-fsfreeze-status","success-response":true},
{"enabled":true,"name":"guest-file-flush","success-response":true},
{"enabled":true,"name":"guest-file-seek","success-response":true},
{"enabled":true,"name":"guest-file-write","success-response":true},
{"enabled":true,"name":"guest-file-read","success-response":true},
{"enabled":true,"name":"guest-file-close","success-response":true},
{"enabled":true,"name":"guest-file-open","success-response":true},
{"enabled":true,"name":"guest-shutdown","success-response":false},
{"enabled":true,"name":"guest-info","success-response":true},
{"enabled":true,"name":"guest-set-time","success-response":true},
{"enabled":true,"name":"guest-get-time","success-response":true},
{"enabled":true,"name":"guest-ping","success-response":true},
{"enabled":true,"name":"guest-sync","success-response":true},
{"enabled":true,"name":"guest-sync-delimited","success-response":true}]}}
— Additional comment from Aviv Turgeman on 2022-10-24 18:12:25 CST —
Hi Dominik
according to the data provided by you, the UI has no issue
the operating system information is taken from the guest agent from the prettyName attribute which here I see it's `Windows 10 Pro` in both cases you shown
just in case we do not have any info from prettyName attr we fallback to the name attr.
— Additional comment from Guohua Ouyang on 2022-10-24 18:17:34 CST —
set the correct needinfo
— Additional comment from Vadim Rozenfeld on 2022-10-25 08:30:33 CST —
FYI
At the moment both Windows 10 and Windows 11 have he same product name "Windows 10".
The only difference between them is the current build number. For windows 11 the
current build number >= 22000.
Best,
Vadim.
— Additional comment from Vadim Rozenfeld on 2022-10-25 17:08:03 CST —
@kkostiuk@redhat.com
Adding Konstantin as qemu agent maintainer
— Additional comment from Dominik Holler on 2022-10-25 19:21:20 CST —
The qemu-guest-agent is doing what it is claiming to do:
in https://github.com/qemu/qemu/blob/2906f933dd1de6d94c54881cc16ea7390a6ba300/qga/qapi-schema.json#L1322 it says "Windows: product name" and in https://github.com/qemu/qemu/blob/2906f933dd1de6d94c54881cc16ea7390a6ba300/qga/commands-win32.c#L2256 it extracts the "ProductName" from the registry.
So if Windows 11 thinks that the product name is "Windows 10", this information is forwarded.
One way of solving this might be to change the definition of the "pretty-name" of the qemu-guest-agent, which might be pretty, but might break backward compatibility.
Another solution would be to add a new attribute to the GuestAgentInfo, which contains something which is easy to understand for the user, e.g. "Windows 11 Pro" or even "Windows 11 Pro (22H2)".
A third solution might be to propagate the user-relevant information, maybe GuestAgentInfo.name and GuestAgentInfo.version, via kubevirt to OpenShift Virtualization UI.
What is the qemu-guest-agent view on this?
just for reference, an example GuestAgentInfo for RHEL:
virsh --connect qemu:///system qemu-agent-command rhel9 '{"execute":"guest-get-osinfo", "arguments":{}}'
{"return":{"name":"Red Hat Enterprise Linux","kernel-release":"5.14.0-142.el9.x86_64","version":"9.1 (Plow)","pretty-name":"Red Hat Enterprise Linux 9.1 Beta (Plow)","version-id":"9.1","kernel-version":"#1 SMP PREEMPT_DYNAMIC Thu Aug 4 15:31:24 EDT 2022","machine":"x86_64","id":"rhel"}}
— Additional comment from Kostiantyn Kostiuk on 2022-10-26 00:36:44 CST —
Hi Dominik,
The guest agent returns only the proper "version" and "version-id" for Windows 11.
The "pretty-name" is read from the registry and will be incorrect until the
MS updates the registry. We do not have any solution to get "pretty-name" without
localization and a proper Windows number.
This question was discussed previously.
https://bugzilla.redhat.com/show_bug.cgi?id=1998919#c8 - reference from the previous discussions.
— Additional comment from Yvugenfi@redhat.com on 2022-10-26 18:51:33 CST —
(In reply to Dominik Holler from comment #11)
> The qemu-guest-agent is doing what it is claiming to do:
> in
> https://github.com/qemu/qemu/blob/2906f933dd1de6d94c54881cc16ea7390a6ba300/
> qga/qapi-schema.json#L1322 it says "Windows: product name" and in
> https://github.com/qemu/qemu/blob/2906f933dd1de6d94c54881cc16ea7390a6ba300/
> qga/commands-win32.c#L2256 it extracts the "ProductName" from the registry.
> So if Windows 11 thinks that the product name is "Windows 10", this
> information is forwarded.
>
> One way of solving this might be to change the definition of the
> "pretty-name" of the qemu-guest-agent, which might be pretty, but might
> break backward compatibility.
> Another solution would be to add a new attribute to the GuestAgentInfo,
> which contains something which is easy to understand for the user, e.g.
> "Windows 11 Pro" or even "Windows 11 Pro (22H2)".
> A third solution might be to propagate the user-relevant information, maybe
> GuestAgentInfo.name and GuestAgentInfo.version, via kubevirt to OpenShift
> Virtualization UI.
>
> What is the qemu-guest-agent view on this?
>
>
>
>
> just for reference, an example GuestAgentInfo for RHEL:
> virsh --connect qemu:///system qemu-agent-command rhel9
> '{"execute":"guest-get-osinfo", "arguments":{}}'
> {"return":{"name":"Red Hat Enterprise
> Linux","kernel-release":"5.14.0-142.el9.x86_64","version":"9.1
> (Plow)","pretty-name":"Red Hat Enterprise Linux 9.1 Beta
> (Plow)","version-id":"9.1","kernel-version":"#1 SMP PREEMPT_DYNAMIC Thu Aug
> 4 15:31:24 EDT 2022","machine":"x86_64","id":"rhel"}}
{"return": {"name": "Microsoft Windows", "kernel-release": "22000", "version": "Microsoft Windows 11", "variant": "client", "pretty-name": "Windows 10 Enterprise", "version-id": "11", "variant-id": "client", "kernel-version": "10.0", "machine": "x86_64", "id": "mswindows"}}
So guest agent already returns "Microsoft Windows 11" in "version" field and "11" in "version-id". That can be used by upper layers.
Unfortunately MS decided to keep Windows 10 in the full SKU name for compatibility reason unknown to us.
— Additional comment from Yvugenfi@redhat.com on 2022-10-26 18:55:32 CST —
And Konstantin mentioned localization, what he meant is that the registry value that we send as "pretty-name" is actually a localised string to the guest. We prefer not to manipulate it as we don't want to test the effects on different localized Windows installations.
— Additional comment from Dominik Holler on 2022-10-26 19:01:39 CST —
>
{"execute":"guest-get-osinfo"}> {"return": {"name": "Microsoft Windows", "kernel-release": "22000",
> "version": "Microsoft Windows 11", "variant": "client", "pretty-name":
> "Windows 10 Enterprise", "version-id": "11", "variant-id": "client",
> "kernel-version": "10.0", "machine": "x86_64", "id": "mswindows"}}
>
> So guest agent already returns "Microsoft Windows 11" in "version" field and
> "11" in "version-id". That can be used by upper layers.
> Unfortunately MS decided to keep Windows 10 in the full SKU name for
> compatibility reason unknown to us.
@gouyang@redhat.com Can the UI change to show the GuestAgentInfo.name and GuestAgentInfo.version instead of the prettyName ?
> And Konstantin mentioned localization, what he meant is that the registry
> value that we send as "pretty-name" is actually a localised string to the
> guest. We prefer not to manipulate it as we don't want to test the effects
> on different localized Windows installations.
sure.
— Additional comment from Aviv Turgeman on 2022-10-26 21:48:14 CST —
Hi Dominik
(In reply to Dominik Holler from comment #15)
> @gouyang@redhat.com Can the UI change to show the GuestAgentInfo.name and
> GuestAgentInfo.version instead of the prettyName ?
sure, PR is for that in here: https://github.com/kubevirt-ui/kubevirt-plugin/pull/932
— Additional comment from OpenShift BugZilla Robot on 2022-10-27 23:06:58 CST —
Bug status changed to NEW as previous linked PR https://github.com/kubevirt-ui/kubevirt-plugin/pull/932 has been closed
— Additional comment from Aviv Turgeman on 2022-10-31 17:35:00 CST —
Moving to 'ON_QA' as PR here [1] is merged
[1] https://github.com/kubevirt-ui/kubevirt-plugin/pull/932
— Additional comment from Leon Kladnitsky on 2022-11-02 23:10:31 CST —
The attached YAML creates without guest agent installed. post-install.ps1 from ConfigMap is not run for some reason
— Additional comment from Leon Kladnitsky on 2022-11-02 23:13:09 CST —
— Additional comment from Leon Kladnitsky on 2022-11-02 23:14:02 CST —
— Additional comment from Aviv Turgeman on 2022-11-07 18:50:17 CST —
I'm not sure about the guest agent, can you please help Dominik?
— Additional comment from Dominik Holler on 2022-11-07 21:45:18 CST —
(In reply to Aviv Turgeman from comment #22)
> I'm not sure about the guest agent, can you please help Dominik?
Unfortenly the example VM is not yet automated completely. To trigger Windows 11 installation automation there is still pressing a key after starting the VM required (https://issues.redhat.com/browse/CNV-20138).
— Additional comment from Leon Kladnitsky on 2022-11-11 00:53:48 CST —
> Unfortenly the example VM is not yet automated completely. To trigger
> Windows 11 installation automation there is still pressing a key after
> starting the VM required (https://issues.redhat.com/browse/CNV-20138).
Where and which key should be pressed? I could not find something useful in CNV-20138.
Dominik, can you assist please?
— Additional comment from Dominik Holler on 2022-11-12 07:06:01 CST —
(In reply to Leon Kladnitsky from comment #24)
> > Unfortenly the example VM is not yet automated completely. To trigger
> > Windows 11 installation automation there is still pressing a key after
> > starting the VM required (https://issues.redhat.com/browse/CNV-20138).
>
> Where and which key should be pressed? I could not find something useful in
> CNV-20138.
> Dominik, can you assist please?
Is https://gitlab.cee.redhat.com/dholler/example-vms/-/blob/main/windows11.yaml more comfortable to use?
— Additional comment from Leon Kladnitsky on 2022-11-12 16:05:12 CST —
(In reply to Dominik Holler from comment #25)
> (In reply to Leon Kladnitsky from comment #24)
> > > Unfortenly the example VM is not yet automated completely. To trigger
> > > Windows 11 installation automation there is still pressing a key after
> > > starting the VM required (https://issues.redhat.com/browse/CNV-20138).
> >
> > Where and which key should be pressed? I could not find something useful in
> > CNV-20138.
> > Dominik, can you assist please?
>
> Is
> https://gitlab.cee.redhat.com/dholler/example-vms/-/blob/main/windows11.yaml
> more comfortable to use?
Nope, this one does not even start, stays in Provisioning state forever, or fails to ErrorUnschedulable immedeately after creating.
Should I use all yaml from there or just VM?
— Additional comment from Dominik Holler on 2022-11-14 16:31:00 CST —
(In reply to Leon Kladnitsky from comment #26)
> (In reply to Dominik Holler from comment #25)
> > (In reply to Leon Kladnitsky from comment #24)
> > > > Unfortenly the example VM is not yet automated completely. To trigger
> > > > Windows 11 installation automation there is still pressing a key after
> > > > starting the VM required (https://issues.redhat.com/browse/CNV-20138).
> > >
> > > Where and which key should be pressed? I could not find something useful in
> > > CNV-20138.
> > > Dominik, can you assist please?
> >
> > Is
> > https://gitlab.cee.redhat.com/dholler/example-vms/-/blob/main/windows11.yaml
> > more comfortable to use?
>
> Nope, this one does not even start, stays in Provisioning state forever, or
> fails to ErrorUnschedulable immedeately after creating.
>
> Should I use all yaml from there or just VM?
All the yaml is required, because the windows disk cannot be published a secret to protect the windows disk is required.
In doubt, use the follwing command lines:
git clone https://gitlab.cee.redhat.com/dholler/example-vms.git
cd example-vms
oc apply -f windows11.yaml
— Additional comment from Guohua Ouyang on 2022-11-23 18:29:56 CST —
Tested on the latest kubevirt-console-plugin version, there are two issues:
1. The win 11 vm is detected as "Microsoft Windows Microsoft Windows 11" on vm overview tab.
2. On vm details tab, it's still "Windows 10 Pro".
For #1, I think the text should be "Microsoft Windows 11", will open a separate issue to guest-agent.
— Additional comment from Yvugenfi@redhat.com on 2022-11-23 18:41:21 CST —
(In reply to Guohua Ouyang from comment #28)
> Tested on the latest kubevirt-console-plugin version, there are two issues:
> 1. The win 11 vm is detected as "Microsoft Windows Microsoft Windows 11" on
> vm overview tab.
> 2. On vm details tab, it's still "Windows 10 Pro".
>
> For #1, I think the text should be "Microsoft Windows 11", will open a
> separate issue to guest-agent.
Please check comment#12 and comment#13.
quest agent is passing a value directly from registry. MS decided to keep calling Windows 11 as Windows 10 for compatibility reasons.
— Additional comment from Guohua Ouyang on 2022-11-23 19:23:34 CST —
Talked with Aviv, the current text is referring to data.os.name and data.os.version, and the value of them are:
data.os.name = Microsoft Windows
data.os.version = Microsoft Windows 11
So maybe it should just refer to data.os.version for windows VM, for RHEL and other OSes, it still use both of data.os.name and data.os.version.
— Additional comment from Hilda Stastna on 2022-11-24 04:38:08 CST —
Note that for the newest code or 4.12, I was able to reproduce this issue also with other operating systems (not always), such as RHEL, not only for Windows.
Also sometimes the OS name is kinda doubled - in VM Overview page, for example I can see "Microsoft Windows Microsoft Windows Server 2019".
Also I was able to create a VM from template with Win 11 OS and then I saw "Microsoft Windows Microsoft Windows Server 2019" as the OS name
in the VM Overview tab when provisioning the VM, while in the VM's Details tab there was "Guest agent is required".
I suggest to test also those cases when verifying the fix. Thanks.
— Additional comment from Aviv Turgeman on 2022-11-24 16:34:46 CST —
Hi Hilda
I saw what you're referring to, but I'm not sure it belongs to this bug scope.
what happens when we enter the VM overview tab from the list, we fetch VMI data as well, and for some reason when VMI is not running but pending (which means to VM is trying to run but is currently provisioning or starting etc.) the hook provided by console-sdk (useK8sWatchResource) is returning unexpected data for the vmi (return a totally different vmi on the same namespace)
I suggest when we fetch the VMI data to ensure the correct VMI before returning the data, and to also check why is the hook giving inconsistent results
— Additional comment from Aviv Turgeman on 2022-11-24 16:36:13 CST —
this screenshot demonstrate which VMI is request on top by name and namespace
and what is the received object
— Additional comment from Guohua Ouyang on 2022-12-05 12:40:31 CST —
verified on v4.13.0-1207, the OS of windows/linux displayed normally and correctly
— Additional comment from errata-xmlrpc on 2022-12-05 13:23:32 CST —
This bug has been added to advisory RHSA-2022:95482 by Continuous Infra Team Autobot (contra/pipeline@REDHAT.COM)
— Additional comment from Red Hat Bugzilla on 2022-12-15 16:28:30 CST —
Account disabled by LDAP Audit for extended failure
- is blocked by
-
CNV-21965 [2136425] Windows 11 is detected as Windows 10
- Closed
- external trackers