[Qemu-devel] qmp commands get rejected
Hello list, since upgrading from qemu 1.4.1 to 1.5.0 i've problems with qmp commands. With Qemu 1.5 i've the following socket communication: '{"execute":"qmp_capabilities","id":"12125:1","arguments":{}}' '{"return": {}, "id": "12125:1"}' '{"execute":"qom-set","id":"12125:2","arguments":{"value":2,"path":"machine/peripheral/balloon0","property":"guest-stats-polling-interval"}}' '{"QMP": {"version": {"qemu": {"micro": 0, "minor": 5, "major": 1}, "package": ""}, "capabilities": []}}' '{"id": "12125:2", "error": {"class": "CommandNotFound", "desc": "The command qom-set has not been found"}}' It seems that the command mode (qmp_capabilities) gets resets by the welcome banner? Greets, Stefan
Re: [Qemu-devel] qmp commands get rejected
On Fri, 24 May 2013 07:50:33 +0200 Stefan Priebe wrote: > Hello list, > > since upgrading from qemu 1.4.1 to 1.5.0 i've problems with qmp commands. > > With Qemu 1.5 i've the following socket communication: > > '{"execute":"qmp_capabilities","id":"12125:1","arguments":{}}' > > '{"return": {}, "id": "12125:1"}' > > '{"execute":"qom-set","id":"12125:2","arguments":{"value":2,"path":"machine/peripheral/balloon0","property":"guest-stats-polling-interval"}}' > > '{"QMP": {"version": {"qemu": {"micro": 0, "minor": 5, "major": 1}, > "package": ""}, "capabilities": []}}' > > '{"id": "12125:2", "error": {"class": "CommandNotFound", "desc": "The > command qom-set has not been found"}}' > > > It seems that the command mode (qmp_capabilities) gets resets by the > welcome banner? It looks like you got disconnected before qom-set was issued. Can you share more details on how those commands are being issued?
Re: [Qemu-devel] qmp commands get rejected
Am 24.05.2013 um 15:23 schrieb Luiz Capitulino : > On Fri, 24 May 2013 07:50:33 +0200 > Stefan Priebe wrote: > >> Hello list, >> >> since upgrading from qemu 1.4.1 to 1.5.0 i've problems with qmp commands. >> >> With Qemu 1.5 i've the following socket communication: >> >> '{"execute":"qmp_capabilities","id":"12125:1","arguments":{}}' >> >> '{"return": {}, "id": "12125:1"}' >> >> '{"execute":"qom-set","id":"12125:2","arguments":{"value":2,"path":"machine/peripheral/balloon0","property":"guest-stats-polling-interval"}}' >> >> '{"QMP": {"version": {"qemu": {"micro": 0, "minor": 5, "major": 1}, >> "package": ""}, "capabilities": []}}' >> >> '{"id": "12125:2", "error": {"class": "CommandNotFound", "desc": "The >> command qom-set has not been found"}}' >> >> >> It seems that the command mode (qmp_capabilities) gets resets by the >> welcome banner? > > It looks like you got disconnected before qom-set was issued. No its the same socket connection. No disconnect had happened. > > Can you share more details on how those commands are being issued? They're send through socket with a perl script. What do you need? Stefan
Re: [Qemu-devel] qmp commands get rejected
On Fri, 24 May 2013 15:57:59 +0200 Stefan Priebe - Profihost AG wrote: > Am 24.05.2013 um 15:23 schrieb Luiz Capitulino : > > > On Fri, 24 May 2013 07:50:33 +0200 > > Stefan Priebe wrote: > > > >> Hello list, > >> > >> since upgrading from qemu 1.4.1 to 1.5.0 i've problems with qmp commands. > >> > >> With Qemu 1.5 i've the following socket communication: > >> > >> '{"execute":"qmp_capabilities","id":"12125:1","arguments":{}}' > >> > >> '{"return": {}, "id": "12125:1"}' > >> > >> '{"execute":"qom-set","id":"12125:2","arguments":{"value":2,"path":"machine/peripheral/balloon0","property":"guest-stats-polling-interval"}}' > >> > >> '{"QMP": {"version": {"qemu": {"micro": 0, "minor": 5, "major": 1}, > >> "package": ""}, "capabilities": []}}' > >> > >> '{"id": "12125:2", "error": {"class": "CommandNotFound", "desc": "The > >> command qom-set has not been found"}}' > >> > >> > >> It seems that the command mode (qmp_capabilities) gets resets by the > >> welcome banner? > > > > It looks like you got disconnected before qom-set was issued. > > No its the same socket connection. No disconnect had happened. > > > > > Can you share more details on how those commands are being issued? > > They're send through socket with a perl script. What do you need? That perl script maybe? I can't reproduce the problem.
Re: [Qemu-devel] qmp commands get rejected
Am 24.05.2013 um 16:02 schrieb Luiz Capitulino : > On Fri, 24 May 2013 15:57:59 +0200 > Stefan Priebe - Profihost AG wrote: > >> Am 24.05.2013 um 15:23 schrieb Luiz Capitulino : >> >>> On Fri, 24 May 2013 07:50:33 +0200 >>> Stefan Priebe wrote: >>> Hello list, since upgrading from qemu 1.4.1 to 1.5.0 i've problems with qmp commands. With Qemu 1.5 i've the following socket communication: '{"execute":"qmp_capabilities","id":"12125:1","arguments":{}}' '{"return": {}, "id": "12125:1"}' '{"execute":"qom-set","id":"12125:2","arguments":{"value":2,"path":"machine/peripheral/balloon0","property":"guest-stats-polling-interval"}}' '{"QMP": {"version": {"qemu": {"micro": 0, "minor": 5, "major": 1}, "package": ""}, "capabilities": []}}' '{"id": "12125:2", "error": {"class": "CommandNotFound", "desc": "The command qom-set has not been found"}}' It seems that the command mode (qmp_capabilities) gets resets by the welcome banner? >>> >>> It looks like you got disconnected before qom-set was issued. >> >> No its the same socket connection. No disconnect had happened. >> >>> >>> Can you share more details on how those commands are being issued? >> >> They're send through socket with a perl script. What do you need? > > That perl script maybe? I can't reproduce the problem. I would try to create a small example script. Am this be due to the fact that I don't wait for the welcome banner right now? Stefan
Re: [Qemu-devel] qmp commands get rejected
On Fri, 24 May 2013 16:36:26 +0200 Stefan Priebe - Profihost AG wrote: > Am 24.05.2013 um 16:02 schrieb Luiz Capitulino : > > > On Fri, 24 May 2013 15:57:59 +0200 > > Stefan Priebe - Profihost AG wrote: > > > >> Am 24.05.2013 um 15:23 schrieb Luiz Capitulino : > >> > >>> On Fri, 24 May 2013 07:50:33 +0200 > >>> Stefan Priebe wrote: > >>> > Hello list, > > since upgrading from qemu 1.4.1 to 1.5.0 i've problems with qmp commands. > > With Qemu 1.5 i've the following socket communication: > > '{"execute":"qmp_capabilities","id":"12125:1","arguments":{}}' > > '{"return": {}, "id": "12125:1"}' > > '{"execute":"qom-set","id":"12125:2","arguments":{"value":2,"path":"machine/peripheral/balloon0","property":"guest-stats-polling-interval"}}' > > '{"QMP": {"version": {"qemu": {"micro": 0, "minor": 5, "major": 1}, > "package": ""}, "capabilities": []}}' > > '{"id": "12125:2", "error": {"class": "CommandNotFound", "desc": "The > command qom-set has not been found"}}' > > > It seems that the command mode (qmp_capabilities) gets resets by the > welcome banner? > >>> > >>> It looks like you got disconnected before qom-set was issued. > >> > >> No its the same socket connection. No disconnect had happened. > >> > >>> > >>> Can you share more details on how those commands are being issued? > >> > >> They're send through socket with a perl script. What do you need? > > > > That perl script maybe? I can't reproduce the problem. > > I would try to create a small example script. I use qmp-shell and other little scripts very often. > Am this be due to the fact that I don't wait for the welcome banner right now? If you're not reading from the socket, then you'll get the banner back when you read your first response. But qom-set shouldn't fail because of that.
Re: [Qemu-devel] qmp commands get rejected
Hi, i can easily reproduce this with the following script: http://pastebin.com/raw.php?i=JYZyJ8Hn Example output (sometimes it fails for qmp_capabilities and sometimes for qom-set): [cloud1-1202: ~]# perl sock.pl {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} [cloud1-1202: ~]# perl sock.pl {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} {"id": "12125:1", "error": {"class": "CommandNotFound", "desc": "The command qmp_capabilities has not been found"}} Stefan Am 24.05.2013 17:21, schrieb Luiz Capitulino: On Fri, 24 May 2013 16:36:26 +0200 Stefan Priebe - Profihost AG wrote: Am 24.05.2013 um 16:02 schrieb Luiz Capitulino : On Fri, 24 May 2013 15:57:59 +0200 Stefan Priebe - Profihost AG wrote: Am 24.05.2013 um 15:23 schrieb Luiz Capitulino : On Fri, 24 May 2013 07:50:33 +0200 Stefan Priebe wrote: Hello list, since upgrading from qemu 1.4.1 to 1.5.0 i've problems with qmp commands. With Qemu 1.5 i've the following socket communication: '{"execute":"qmp_capabilities","id":"12125:1","arguments":{}}' '{"return": {}, "id": "12125:1"}' '{"execute":"qom-set","id":"12125:2","arguments":{"value":2,"path":"machine/peripheral/balloon0","property":"guest-stats-polling-interval"}}' '{"QMP": {"version": {"qemu": {"micro": 0, "minor": 5, "major": 1}, "package": ""}, "capabilities": []}}' '{"id": "12125:2", "error": {"class": "CommandNotFound", "desc": "The command qom-set has not been found"}}' It seems that the command mode (qmp_capabilities) gets resets by the welcome banner? It looks like you got disconnected before qom-set was issued. No its the same socket connection. No disconnect had happened. Can you share more details on how those commands are being issued? They're send through socket with a perl script. What do you need? That perl script maybe? I can't reproduce the problem. I would try to create a small example script. I use qmp-shell and other little scripts very often. Am this be due to the fact that I don't wait for the welcome banner right now? If you're not reading from the socket, then you'll get the banner back when you read your first response. But qom-set shouldn't fail because of that.
Re: [Qemu-devel] qmp commands get rejected
Am 24.05.2013 17:21, schrieb Luiz Capitulino: On Fri, 24 May 2013 16:36:26 +0200 Stefan Priebe - Profihost AG wrote: Am 24.05.2013 um 16:02 schrieb Luiz Capitulino : On Fri, 24 May 2013 15:57:59 +0200 Stefan Priebe - Profihost AG wrote: Am 24.05.2013 um 15:23 schrieb Luiz Capitulino : On Fri, 24 May 2013 07:50:33 +0200 Stefan Priebe wrote: Hello list, since upgrading from qemu 1.4.1 to 1.5.0 i've problems with qmp commands. With Qemu 1.5 i've the following socket communication: '{"execute":"qmp_capabilities","id":"12125:1","arguments":{}}' '{"return": {}, "id": "12125:1"}' '{"execute":"qom-set","id":"12125:2","arguments":{"value":2,"path":"machine/peripheral/balloon0","property":"guest-stats-polling-interval"}}' '{"QMP": {"version": {"qemu": {"micro": 0, "minor": 5, "major": 1}, "package": ""}, "capabilities": []}}' '{"id": "12125:2", "error": {"class": "CommandNotFound", "desc": "The command qom-set has not been found"}}' It seems that the command mode (qmp_capabilities) gets resets by the welcome banner? It looks like you got disconnected before qom-set was issued. No its the same socket connection. No disconnect had happened. Can you share more details on how those commands are being issued? They're send through socket with a perl script. What do you need? That perl script maybe? I can't reproduce the problem. I would try to create a small example script. I use qmp-shell and other little scripts very often. Am this be due to the fact that I don't wait for the welcome banner right now? If you're not reading from the socket, then you'll get the banner back when you read your first response. But qom-set shouldn't fail because of that. I can workaround it by adding this patch: diff --git a/monitor.c b/monitor.c index 62aaebe..9997520 100644 --- a/monitor.c +++ b/monitor.c @@ -4239,7 +4239,8 @@ static int monitor_can_read(void *opaque) static int invalid_qmp_mode(const Monitor *mon, const char *cmd_name) { int is_cap = compare_cmd(cmd_name, "qmp_capabilities"); -return (qmp_cmd_mode(mon) ? is_cap : !is_cap); +//return (qmp_cmd_mode(mon) ? is_cap : !is_cap); +return ((is_cap > 0) ? 0 : (qmp_cmd_mode(mon) ? is_cap : !is_cap)); } /* Stefan
Re: [Qemu-devel] qmp commands get rejected
Mit freundlichen Grüßen Stefan Priebe Bachelor of Science in Computer Science (BSCS) Vorstand (CTO) --- Profihost AG Am Mittelfelde 29 30519 Hannover Deutschland Tel.: +49 (511) 5151 8181 | Fax.: +49 (511) 5151 8282 URL: http://www.profihost.com | E-Mail: i...@profihost.com Sitz der Gesellschaft: Hannover, USt-IdNr. DE813460827 Registergericht: Amtsgericht Hannover, Register-Nr.: HRB 202350 Vorstand: Cristoph Bluhm, Sebastian Bluhm, Stefan Priebe Aufsichtsrat: Prof. Dr. iur. Winfried Huck (Vorsitzender) Am 24.05.2013 23:37, schrieb Stefan Priebe: Am 24.05.2013 17:21, schrieb Luiz Capitulino: On Fri, 24 May 2013 16:36:26 +0200 Stefan Priebe - Profihost AG wrote: Am 24.05.2013 um 16:02 schrieb Luiz Capitulino : On Fri, 24 May 2013 15:57:59 +0200 Stefan Priebe - Profihost AG wrote: Am 24.05.2013 um 15:23 schrieb Luiz Capitulino : On Fri, 24 May 2013 07:50:33 +0200 Stefan Priebe wrote: Hello list, since upgrading from qemu 1.4.1 to 1.5.0 i've problems with qmp commands. With Qemu 1.5 i've the following socket communication: '{"execute":"qmp_capabilities","id":"12125:1","arguments":{}}' '{"return": {}, "id": "12125:1"}' '{"execute":"qom-set","id":"12125:2","arguments":{"value":2,"path":"machine/peripheral/balloon0","property":"guest-stats-polling-interval"}}' '{"QMP": {"version": {"qemu": {"micro": 0, "minor": 5, "major": 1}, "package": ""}, "capabilities": []}}' '{"id": "12125:2", "error": {"class": "CommandNotFound", "desc": "The command qom-set has not been found"}}' It seems that the command mode (qmp_capabilities) gets resets by the welcome banner? It looks like you got disconnected before qom-set was issued. No its the same socket connection. No disconnect had happened. Can you share more details on how those commands are being issued? They're send through socket with a perl script. What do you need? That perl script maybe? I can't reproduce the problem. I would try to create a small example script. I use qmp-shell and other little scripts very often. Am this be due to the fact that I don't wait for the welcome banner right now? If you're not reading from the socket, then you'll get the banner back when you read your first response. But qom-set shouldn't fail because of that. I can workaround it by adding this patch: diff --git a/monitor.c b/monitor.c index 62aaebe..9997520 100644 --- a/monitor.c +++ b/monitor.c @@ -4239,7 +4239,8 @@ static int monitor_can_read(void *opaque) static int invalid_qmp_mode(const Monitor *mon, const char *cmd_name) { int is_cap = compare_cmd(cmd_name, "qmp_capabilities"); -return (qmp_cmd_mode(mon) ? is_cap : !is_cap); +//return (qmp_cmd_mode(mon) ? is_cap : !is_cap); +return ((is_cap > 0) ? 0 : (qmp_cmd_mode(mon) ? is_cap : !is_cap)); } /* It fixes it for the moment... but not in general. Still seeing failing commands... Stefan
Re: [Qemu-devel] qmp commands get rejected
Am 24.05.2013 23:37, schrieb Stefan Priebe: Am 24.05.2013 17:21, schrieb Luiz Capitulino: On Fri, 24 May 2013 16:36:26 +0200 Stefan Priebe - Profihost AG wrote: Am 24.05.2013 um 16:02 schrieb Luiz Capitulino : On Fri, 24 May 2013 15:57:59 +0200 Stefan Priebe - Profihost AG wrote: Am 24.05.2013 um 15:23 schrieb Luiz Capitulino : On Fri, 24 May 2013 07:50:33 +0200 Stefan Priebe wrote: Hello list, since upgrading from qemu 1.4.1 to 1.5.0 i've problems with qmp commands. With Qemu 1.5 i've the following socket communication: '{"execute":"qmp_capabilities","id":"12125:1","arguments":{}}' '{"return": {}, "id": "12125:1"}' '{"execute":"qom-set","id":"12125:2","arguments":{"value":2,"path":"machine/peripheral/balloon0","property":"guest-stats-polling-interval"}}' '{"QMP": {"version": {"qemu": {"micro": 0, "minor": 5, "major": 1}, "package": ""}, "capabilities": []}}' '{"id": "12125:2", "error": {"class": "CommandNotFound", "desc": "The command qom-set has not been found"}}' It seems that the command mode (qmp_capabilities) gets resets by the welcome banner? It looks like you got disconnected before qom-set was issued. No its the same socket connection. No disconnect had happened. Can you share more details on how those commands are being issued? They're send through socket with a perl script. What do you need? That perl script maybe? I can't reproduce the problem. I would try to create a small example script. I use qmp-shell and other little scripts very often. Am this be due to the fact that I don't wait for the welcome banner right now? If you're not reading from the socket, then you'll get the banner back when you read your first response. But qom-set shouldn't fail because of that. I can workaround it by adding this patch: diff --git a/monitor.c b/monitor.c index 62aaebe..9997520 100644 --- a/monitor.c +++ b/monitor.c @@ -4239,7 +4239,8 @@ static int monitor_can_read(void *opaque) static int invalid_qmp_mode(const Monitor *mon, const char *cmd_name) { int is_cap = compare_cmd(cmd_name, "qmp_capabilities"); -return (qmp_cmd_mode(mon) ? is_cap : !is_cap); +//return (qmp_cmd_mode(mon) ? is_cap : !is_cap); +return ((is_cap > 0) ? 0 : (qmp_cmd_mode(mon) ? is_cap : !is_cap)); } /* It fixes it for the moment... but not in general. Still seeing failing commands... Stefan