Bug 1008317

Summary: qmp do not give any warning or error message when set migrate_set_downtime with negative number in qmp
Product: Red Hat Enterprise Linux 7 Reporter: Jun Li <juli>
Component: qemu-kvmAssignee: Ademar Reis <areis>
Status: CLOSED WONTFIX QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: low    
Version: 7.0CC: acathrow, hhuang, juzhang, michen, qzhang, virt-maint, xfu
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1186615 (view as bug list) Environment:
Last Closed: 2013-12-18 15:03:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1186615    

Description Jun Li 2013-09-16 07:00:49 UTC
Description of problem:
If set migrate_set_downtime with negative number in qmp, qmp do not give any warning or error message. I also test with other illegal number, such as "00.1234" and "abc" and so on, it will give some error messages.

{ "execute": "migrate_set_downtime", "arguments": { "value": 00.1234}}
{"error": {"class": "GenericError", "desc": "Invalid JSON syntax"}}
{"error": {"class": "GenericError", "desc": "Invalid JSON syntax"}}
{"error": {"class": "GenericError", "desc": "Expected 'object' in QMP input"}}
{"error": {"class": "GenericError", "desc": "Invalid JSON syntax"}}
{"error": {"class": "GenericError", "desc": "Invalid JSON syntax"}}
{ "execute": "migrate_set_downtime", "arguments": { "value": abc }}
{"error": {"class": "GenericError", "desc": "Invalid JSON syntax"}} 

Version-Release number of selected component (if applicable):
qemu-kvm-1.5.3-2.el7.x86_64
3.10.0-18.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.run qemu-kvm with following command.
# /usr/libexec/qemu-kvm -monitor stdio -qmp tcp:0:4445,server,nowait

2.run "migrate_set_downtime" with negative number inside qmp.
{ "execute": "migrate_set_downtime", "arguments": { "value": -2342345346}}
{ "execute": "migrate_set_downtime", "arguments": { "value": -0.2342}}
3.observe the return result inside qmp.

Actual results:
{"return": {}}
{"return": {}}

Expected results:
When run "migrate_set_downtime" with negative number, qmp will give some warning or error message.

Additional info:

Comment 2 Ademar Reis 2013-12-18 15:03:46 UTC
Direct usage of QMP will not be supported in RHEL7 and libvirt should protect us from this kind of usage.

In fact, QMP negative numbers (signed) are used sometimes at the JSON level and then converted to signed internally, to workaround a limit on the size accepted by the JSON parser. Which is probably not the case here, but anyway, closing as WONTFIX because this will not be a supported scenario in RHEL7.