Hi Sam, Can you share the whole python script you use in order to execute the commands? This wasn't clear from what you've sent earlier, however we already tried to reproduce the issue using ncat while manually inserting the JSON strings for the route -n and the ping commands.
Here is the test run: {"execute":"guest-exec","arguments":{"path":"/sbin/route","arg":["-n"],"capture-output": true}} {"return": {"pid": 2628}} {"execute":"guest-exec","arguments":{"path":"/bin/ping","capture-output": true }} {"return": {"pid": 2629}} {"execute":"guest-exec-status","arguments":{"pid": 2628}} {"return": {"exitcode": 0, "out-data": "S2VybmVsIElQIHJvdXRpbmcgdGFibGUKRGVzdGluYXRpb24gICAgIEdhdGV3YXkgICAgICAgICBHZW5tYXNrICAgICAgICAgRmxhZ3MgTWV0cmljIFJlZiAgICBVc2UgSWZhY2UKMC4wLjAuMCAgICAgICAgIDEwLjAuMC4xNTAgICAgICAwLjAuMC4wICAgICAgICAgVUcgICAgMTAwICAgIDAgICAgICAgIDAgZW5zNAoxMC4wLjAuMCAgICAgICAgMC4wLjAuMCAgICAgICAgIDI1NS4yNTUuMC4wICAgICBVICAgICAxMDAgICAgMCAgICAgICAgMCBlbnM0Cg==", "exited": true}} {"execute":"guest-exec-status","arguments":{"pid": 2629}} {"return": {"exitcode": 2, "err-data": "VXNhZ2U6IHBpbmcgWy1hQWJCZERmaExuT3FyUlV2VjY0XSBbLWMgY291bnRdIFstaSBpbnRlcnZhbF0gWy1JIGludGVyZmFjZV0KICAgICAgICAgICAgWy1tIG1hcmtdIFstTSBwbXR1ZGlzY19vcHRpb25dIFstbCBwcmVsb2FkXSBbLXAgcGF0dGVybl0gWy1RIHRvc10KICAgICAgICAgICAgWy1zIHBhY2tldHNpemVdIFstUyBzbmRidWZdIFstdCB0dGxdIFstVCB0aW1lc3RhbXBfb3B0aW9uXQogICAgICAgICAgICBbLXcgZGVhZGxpbmVdIFstVyB0aW1lb3V0XSBbaG9wMSAuLi5dIGRlc3RpbmF0aW9uClVzYWdlOiBwaW5nIC02IFstYUFiQmREZmhMbk9xclJVdlZdIFstYyBjb3VudF0gWy1pIGludGVydmFsXSBbLUkgaW50ZXJmYWNlXQogICAgICAgICAgICAgWy1sIHByZWxvYWRdIFstbSBtYXJrXSBbLU0gcG10dWRpc2Nfb3B0aW9uXQogICAgICAgICAgICAgWy1OIG5vZGVpbmZvX29wdGlvbl0gWy1wIHBhdHRlcm5dIFstUSB0Y2xhc3NdIFstcyBwYWNrZXRzaXplXQogICAgICAgICAgICAgWy1TIHNuZGJ1Zl0gWy10IHR0bF0gWy1UIHRpbWVzdGFtcF9vcHRpb25dIFstdyBkZWFkbGluZV0KICAgICAgICAgICAgIFstVyB0aW1lb3V0XSBkZXN0aW5hdGlvbgo=", "exited": true}} On Wed, Aug 30, 2017 at 9:22 AM, Sam <batmanu...@gmail.com> wrote: > Qemu-2.6.0 > > 2017-08-30 14:20 GMT+08:00 Sam <batmanu...@gmail.com>: > >> Hi all, >> >> I could repeat it, host os and guest os is Centos-7, qemu-ga is alive in >> guest. the step to repeat it is: >> >> 1. run python script just like the first email. >> 2. send qmp command1(cmd in the python script, like `route -n` command or >> something, of course it's qmp format), and interrupt it immediately(use >> `ctrl+c`). >> 3. then use that script to send command2(do not send command1) again, >> then you could get the result of command1. >> >> >> 2017-08-29 17:04 GMT+08:00 Sameeh Jubran <sam...@daynix.com>: >> >>> Hi Sam, >>> >>> Thanks for reporting this, in order to debug this efficiently I need you >>> to provide me with more info, if you can provide it that would be great. >>> Can you reproduce the issue with ncat? You can use ncat to connect to >>> the socket by running the following command: >>> >>> nc -U /tmp/qga.sock >>> >>> Which OS are you running? Which qemu-ga version are you running? can you >>> reproduce with upstream qemu-ga? >>> >>> On Tue, Aug 29, 2017 at 9:19 AM, Sam <batmanu...@gmail.com> wrote: >>> >>>> So how to fix this bug? And where should I to report bug? >>>> >>>> 2017-08-29 13:52 GMT+08:00 Sam <batmanu...@gmail.com>: >>>> >>>> > I could repeat this several times, I think it's mis-order of qmp in >>>> qga >>>> > socket. >>>> > >>>> > 2017-08-25 11:09 GMT+08:00 Sam <batmanu...@gmail.com>: >>>> > >>>> >> Also I found: >>>> >> >>>> >> when I use `socat` to take a qga socket, then I use `socat` to >>>> >> communicate it will got error. >>>> >> But also SOMETIMES, I will not got error and will communicate OK. >>>> >> >>>> >> If one user take qga socket, another user should got error, is it? >>>> But >>>> >> why sometimes, the communicate is OK? >>>> >> >>>> >> 2017-08-25 10:11 GMT+08:00 Sam <batmanu...@gmail.com>: >>>> >> >>>> >>> Hi all, >>>> >>> >>>> >>> I'm using qga to send `route -n` and `ping` command to guest. But I >>>> >>> found SOMETIMES, the second `ping` command's result is the same as >>>> `route >>>> >>> -n` command. >>>> >>> >>>> >>> So I guess is there some cache mechanism of qga command result? So >>>> when >>>> >>> I send the second command, and receive from qga socket, I receive >>>> the >>>> >>> result of first command. >>>> >>> >>>> >>> Or is this bug happened because of I use async mechanism of python >>>> code >>>> >>> to operate qga socket? >>>> >>> >>>> >>> This is the python code I use to operate on this qga socket: >>>> >>> >>>> >>> try: >>>> >>>> sock=socket(AF_UNIX, SOCK_STREAM) >>>> >>>> sock.settimeout(20) >>>> >>>> sock.connect(vm_qga_sockpath) >>>> >>>> sock.send(cmd) >>>> >>>> while True: >>>> >>>> res = sock.recv(1024) >>>> >>>> if len(res): >>>> >>>> break >>>> >>>> except Exception as e: >>>> >>>> res = -1 >>>> >>>> finally: >>>> >>>> sock.settimeout(None) >>>> >>>> sock.close() >>>> >>> >>>> >>> >>>> >> >>>> > >>>> >>> >>> >>> >>> -- >>> Respectfully, >>> *Sameeh Jubran* >>> *Linkedin <https://il.linkedin.com/pub/sameeh-jubran/87/747/a8a>* >>> *Software Engineer @ Daynix <http://www.daynix.com>.* >>> >> >> > -- Respectfully, *Sameeh Jubran* *Linkedin <https://il.linkedin.com/pub/sameeh-jubran/87/747/a8a>* *Software Engineer @ Daynix <http://www.daynix.com>.*