Bug 1048648

Summary: QMP: can not be used after issue invalid command
Product: Red Hat Enterprise Linux 7 Reporter: mazhang <mazhang>
Component: qemu-kvmAssignee: Ademar Reis <areis>
Status: CLOSED WONTFIX QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: acathrow, hhuang, juzhang, lcapitulino, michen, qzhang, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-01-06 13:03:42 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:

Description mazhang 2014-01-06 02:27:10 UTC
Description of problem:
After issue a invalid command, qmp monitor can NOT be used, Any right commands will return error.

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

Host:
qemu-kvm-rhev-1.5.3-30.el7.x86_64
kernel-3.10.0-64.el7.x86_64

Guest:
RHEL7-64

How reproducible:
100%

Steps to Reproduce:
1.Boot guest with qmp, then issue invalid command.

Actual results:
Escape character is '^]'.
{"QMP": {"version": {"qemu": {"micro": 3, "minor": 5, "major": 1}, "package": " (qemu-kvm-1.5.3-30.el7)"}, "capabilities": []}}
{"execute":"qmp_capabilities"}} 
{"return": {}}
{"error": {"class": "GenericError", "desc": "Invalid JSON syntax"}}
{"execute":"query-status"}
{"return": {"status": "running", "singlestep": false, "running": true}}
{"execute":"qmp_capabisadfewfsds"}} 
{"error": {"class": "CommandNotFound", "desc": "The command qmp_capabisadfewfsds has not been found"}}
{"error": {"class": "GenericError", "desc": "Invalid JSON syntax"}}
{"execute":"qmp_capabilsdfwe234543t)(&%
}
{"execute":"query-status"}
{"error": {"class": "GenericError", "desc": "Invalid JSON syntax"}}
{"error": {"class": "GenericError", "desc": "Invalid JSON syntax"}}
{"execute":"query-status"}
{"error": {"class": "GenericError", "desc": "Expected 'object' in QMP input"}}
{"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"}}
{"error": {"class": "GenericError", "desc": "Invalid JSON syntax"}}
{"execute": "query-block"}
{"error": {"class": "GenericError", "desc": "Expected 'object' in QMP input"}}
{"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"}}
{"error": {"class": "GenericError", "desc": "Invalid JSON syntax"}}

Expected results:
After issue a invalid command, qmp monitor can be use, right commands will return status correctly.

Additional info:

Comment 2 Ademar Reis 2014-01-06 13:03:42 UTC
We don't support direct usage of QMP in RHEL7 and libvirt protects us from this scenario, so closing as WONTFIX.

BTW, reproduced it on qemu-kvm-1.7.0-3.fc20.x86_64 as well.