[Qemu-devel] qmp commands get rejected

2013-05-23 Thread Stefan Priebe

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

2013-05-24 Thread 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.

Can you share more details on how those commands are being issued?



Re: [Qemu-devel] qmp commands get rejected

2013-05-24 Thread Stefan Priebe - Profihost AG
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

2013-05-24 Thread 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.



Re: [Qemu-devel] qmp commands get rejected

2013-05-24 Thread Stefan Priebe - Profihost AG



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

2013-05-24 Thread 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

2013-05-24 Thread Stefan Priebe

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

2013-05-24 Thread 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));
 }

 /*

Stefan



Re: [Qemu-devel] qmp commands get rejected

2013-05-24 Thread Stefan Priebe



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

2013-05-24 Thread Stefan Priebe

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