Bug 1438735 - Windows' qemu-ga fails to set the 'can-offline' field in 'guest-get-vcpus' reply
Summary: Windows' qemu-ga fails to set the 'can-offline' field in 'guest-get-vcpus' reply
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: virtio-win
Version: 7.4
Hardware: Unspecified
OS: Windows
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Yan Vugenfirer
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-04-04 10:20 UTC by Daniel Berrangé
Modified: 2017-08-01 12:58 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-08-01 12:58:08 UTC


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2017:2341 normal SHIPPED_LIVE virtio-win bug fix and enhancement update 2017-08-01 16:52:38 UTC

Description Daniel Berrangé 2017-04-04 10:20:24 UTC
Description of problem:
The QGA schema says

# @can-offline: Whether offlining the VCPU is possible. This member
#               is always filled in by the guest agent when the structure is
#               returned, and always ignored on input (hence it can be omitted
#               then).

but the *Windows* implementation of 'guest-get-vcpus' simply does

             vcpu->has_can_offline = false;

which means 'can-offline' is missing entirely from the reply. This causes errors in libvirt which is expecting the reply to be compliant with the schema docs

error: internal error: 'can-offline' missing in reply of guest-get-vcpus

The guest agent code should be doing

             vcpu->has_can_offline = true;
             vcpu->can_offline = false;

Version-Release number of selected component (if applicable):
2.9.0

Comment 2 xiagao 2017-04-10 05:39:00 UTC
Hi,

I tried to execute 'guest-get-vcpus' in qemu-ga-win-7.4.3-1.
{"execute":"guest-get-vcpus"}
{"return": [{"online": true, "logical-id": 0}, {"online": true, "logical-id": 1}, {"online": true, "logical-id": 2}, {"online": true, "logical-id": 3}]}

From comment 0, what will the expect result be in rhel7.4? And do we still not support 'guest-set-vcpus' in windows guest in rhel7.4?

I noticed that rhel guest's result is like following:
 {"return":[{"online":true,"can-offline":true,"logical-id":0},{"online":true,"can-offline":true,"logical-id":1}...

Is the result expected in windows guest like this?
{"return":[{"online":true,"can-offline":false,"logical-id":0},{"online":true,"can-offline":false,"logical-id":1}...


Thanks,
xiagao

Comment 3 Yan Vugenfirer 2017-04-12 09:02:28 UTC
There is no support for guest-set-vcpus  in Windows.

Can offline should be false.

Comment 5 xiagao 2017-06-09 05:49:51 UTC
verified this bug on qemu-ga-win-7.4.5-1

{"execute":"guest-get-vcpus"}
{"return": [{"online": true, "can-offline": false, "logical-id": 0}, {"online": true, "can-offline": false, "logical-id": 1}]}

Comment 7 errata-xmlrpc 2017-08-01 12:58:08 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:2341


Note You need to log in before you can comment on or make changes to this bug.