From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59353) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YiS6X-0006GG-Fk for qemu-devel@nongnu.org; Wed, 15 Apr 2015 14:32:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YiS6S-0002OH-V9 for qemu-devel@nongnu.org; Wed, 15 Apr 2015 14:32:05 -0400 Received: from mx1.redhat.com ([209.132.183.28]:57325) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YiS6S-0002Nu-Np for qemu-devel@nongnu.org; Wed, 15 Apr 2015 14:32:00 -0400 Message-ID: <552EAE9D.90703@redhat.com> Date: Wed, 15 Apr 2015 12:31:57 -0600 From: Eric Blake MIME-Version: 1.0 References: <1429111163-27870-1-git-send-email-eblake@redhat.com> <552EAA42.9020400@redhat.com> In-Reply-To: <552EAA42.9020400@redhat.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="a0vDrqxjE7PnU9bx8Ckch085cAlXHixFS" Subject: Re: [Qemu-devel] [PATCH] qmp: Give saner messages related to qmp_capabilities misuse List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: John Snow , qemu-devel@nongnu.org Cc: erik.rull@rdsoftware.de, paulo.vital@profitbricks.com, lcapitulino@redhat.com This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --a0vDrqxjE7PnU9bx8Ckch085cAlXHixFS Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 04/15/2015 12:13 PM, John Snow wrote: >=20 >=20 > On 04/15/2015 11:19 AM, Eric Blake wrote: >> Pretending that QMP doesn't understand a command merely because >> we are not in the right mode doesn't help first-time users figure >> out what to do to correct things. Although the documentation for >> QMP calls out capabilities negotiation, we should also make it >> clear in our error messages what we were expecting. With this >> patch, I now get the following transcript: >> >> $ ./x86_64-softmmu/qemu-system-x86_64 -qmp stdio -nodefaults >> {"QMP": {"version": {"qemu": {"micro": 93, "minor": 2, "major": 2}, >> "package": ""}, "capabilities": []}} >> {"execute":"huh"} >> {"error": {"class": "CommandNotFound", "desc": "The command huh has >> not been found"}} >> {"execute":"quit"} >> {"error": {"class": "CommandNotFound", "desc": "Expecting capabilities= >> negotiation with 'qmp_capabilities' before command 'quit'"}} >=20 > Any particular reason why we should keep the "CommandNotFound" error > class here? Backwards compat? Inertia? >=20 >> {"execute":"qmp_capabilities"} >> {"return": {}} >> {"execute":"qmp_capabilities"} >> {"error": {"class": "CommandNotFound", "desc": "Capabilities >> negotiation is already complete, command 'qmp_capabilities' ignored"}}= >=20 > Same here. Backwards compat. I can't prove that anyone else was relying on specific classes (in particular, although it is unlikely that anyone was issuing qmp_capabilities more than once, or cares what error class was returned, it IS a useful test for probing if the connection is in capability negotiation mode when reconnecting to a monitor after a libvirtd restart). It's better to be conservative and avoid changing the error class (which must be reliable to machine readers) and only impact the error message (which is human readable and is documented to not be machine parseable, so we can change that at will). --=20 Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --a0vDrqxjE7PnU9bx8Ckch085cAlXHixFS Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJVLq6dAAoJEKeha0olJ0NqTkAH+gI+E/vckp2JaPvNeyEnbNY7 J03cgoR8gcxQsk5EJIN9lCc8ud2NmHe/4+HS/+cYdBojzDQQdZmnIcsEcq7qOtTi BzUPudYns2DWgQShNLNh2MLIMv6H6KxIRYgeZLGVFf8i51HvrPAOOtCLf7rBsZp2 O8eo5wpOdFDBHjkAC7AOmkmTwa4lOZWjwRC/w1bJ7YD7QjDOAfPg+rSYvVUxEc5e OgY614xGry+9gBAb4e9fMxhnsFhpbUUL+lvZEMOZfSlFcz2jfnO7mqRDCffgyOHX bCELZqXgmubUNTHQFc33bD/ilMEsEXbsyIdWa5mGR0Uf9KvoXcvyKn+qck+sPl8= =zwkA -----END PGP SIGNATURE----- --a0vDrqxjE7PnU9bx8Ckch085cAlXHixFS--