From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:36339) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ug05a-0008AC-NL for qemu-devel@nongnu.org; Fri, 24 May 2013 18:03:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ug05Z-0004mu-3E for qemu-devel@nongnu.org; Fri, 24 May 2013 18:03:54 -0400 Received: from mail-ph.de-nserver.de ([85.158.179.214]:38389) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ug05Y-0004lr-OZ for qemu-devel@nongnu.org; Fri, 24 May 2013 18:03:53 -0400 Message-ID: <519FE3C8.5050707@profihost.ag> Date: Sat, 25 May 2013 00:03:52 +0200 From: Stefan Priebe MIME-Version: 1.0 References: <519EFFA9.3070100@profihost.ag> <20130524092356.2f16521d@redhat.com> <94065BAF-4476-4709-A494-37E4A43884D3@profihost.ag> <20130524100242.39ec0b73@redhat.com> <20130524112152.32ce478a@redhat.com> <519FC9C3.7070803@profihost.ag> <519FDDAA.4010801@profihost.ag> In-Reply-To: <519FDDAA.4010801@profihost.ag> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] qmp commands get rejected List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino Cc: qemu-devel , Dietmar Maurer , "qemu-stable@nongnu.org" 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: info@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