John Snow <js...@redhat.com> writes: > On Thu, Feb 3, 2022 at 5:04 AM Markus Armbruster <arm...@redhat.com> wrote: >> John Snow <js...@redhat.com> writes: >> > On Thu, Jan 27, 2022 at 9:03 AM Markus Armbruster <arm...@redhat.com> >> > wrote: >> >> John Snow <js...@redhat.com> writes: > >> >> > (7) I have no idea what to do about functions that "may not return". >> >> > The QGA stuff in particular, I believe, is prone to some weirdness >> >> > that violates the core principles of the QMP spec. >> >> >> >> Yes. >> >> >> >> docs/interop/qmp-spec.txt dictates a command sends either a success or >> >> an error response. Makes sense. >> >> >> >> QGA has a few commands that shut down the guest. How could such a >> >> command send a success response? If it sends it before it initiates >> >> shutdown, response transmission races with shutdown. The easy way out >> >> is violating qmp-spec.txt. Thus, 'success-response': false. Just for >> >> QGA. >> >> >> > >> > Oh, whoops, I already have the information we need. O:-) >> > (Assuming that 'success-response' is visible in the introspection data, >> > anyway. >> >> qapi/introspect.json: >> >> ## >> # @SchemaInfoCommand: >> [...] >> # TODO: @success-response (currently irrelevant, because it's QGA, not >> QMP) >> # >> # Since: 2.5 >> ## >> { 'struct': 'SchemaInfoCommand', >> 'data': { 'arg-type': 'str', 'ret-type': 'str', >> '*allow-oob': 'bool' } } >> >> The TODO neglects to spell out "and QGA doesn't support introspection so >> far". > > Oof, ouch, my bones. > > What will it take to add introspection to QGA? (Is this GSoC/Outreachy > appropriate?) > (This is not critically important to me, just a backburner thought.)
The QEMU/QGA part should be easy enough: implement and document a suitable introspection command, by stealing from query-qmp-schema. The much more interesting part is putting it to actual use.