Daniel P. Berrangé <berra...@redhat.com> writes: > On Tue, Nov 10, 2020 at 07:22:26AM +0100, Markus Armbruster wrote: [...] >> Command responses get sent strictly in order (even parse errors), except >> for commands executed out-of-band. > > With out of band commands, how much runs in the background ? Is the > JSON parsing still in the foreground, such that we can expect that > even for OOB commands, a error response without a "id" is still > received strictly in order.
Yes, you can. We made sure both errors and results flow through the same pipeline[*]. The only fork is for OOB commands, and to take it, the parser must have yielded a JSON object. Use of exec-oob without "id" is foolish. Pipelining commands without "id" is merely unadvisable. [*] We queue parse errors along with successfully parsed values. The QMP dispatcher dequeues, executes if it's a request, sends the response, loop.