* [Qemu-devel] [QGA] Bug of qga?
@ 2017-08-25 2:11 Sam
2017-08-25 3:09 ` Sam
0 siblings, 1 reply; 8+ messages in thread
From: Sam @ 2017-08-25 2:11 UTC (permalink / raw)
To: qemu-devel
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()
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [QGA] Bug of qga? 2017-08-25 2:11 [Qemu-devel] [QGA] Bug of qga? Sam @ 2017-08-25 3:09 ` Sam 2017-08-29 5:52 ` Sam 0 siblings, 1 reply; 8+ messages in thread From: Sam @ 2017-08-25 3:09 UTC (permalink / raw) To: qemu-devel 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 <batmanustc@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() > > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [QGA] Bug of qga? 2017-08-25 3:09 ` Sam @ 2017-08-29 5:52 ` Sam 2017-08-29 6:19 ` Sam 0 siblings, 1 reply; 8+ messages in thread From: Sam @ 2017-08-29 5:52 UTC (permalink / raw) To: qemu-devel 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 <batmanustc@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 <batmanustc@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() >> >> > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [QGA] Bug of qga? 2017-08-29 5:52 ` Sam @ 2017-08-29 6:19 ` Sam 2017-08-29 9:04 ` Sameeh Jubran 0 siblings, 1 reply; 8+ messages in thread From: Sam @ 2017-08-29 6:19 UTC (permalink / raw) To: qemu-devel, qemu-discuss So how to fix this bug? And where should I to report bug? 2017-08-29 13:52 GMT+08:00 Sam <batmanustc@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 <batmanustc@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 <batmanustc@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() >>> >>> >> > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [QGA] Bug of qga? 2017-08-29 6:19 ` Sam @ 2017-08-29 9:04 ` Sameeh Jubran 2017-08-30 6:20 ` Sam 0 siblings, 1 reply; 8+ messages in thread From: Sameeh Jubran @ 2017-08-29 9:04 UTC (permalink / raw) To: Sam; +Cc: QEMU Developers, qemu-discuss 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 <batmanustc@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 <batmanustc@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 <batmanustc@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 <batmanustc@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>.* ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [QGA] Bug of qga? 2017-08-29 9:04 ` Sameeh Jubran @ 2017-08-30 6:20 ` Sam 2017-08-30 6:22 ` Sam 0 siblings, 1 reply; 8+ messages in thread From: Sam @ 2017-08-30 6:20 UTC (permalink / raw) To: Sameeh Jubran; +Cc: QEMU Developers, qemu-discuss 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 <sameeh@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 <batmanustc@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 <batmanustc@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 <batmanustc@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 <batmanustc@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>.* > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [QGA] Bug of qga? 2017-08-30 6:20 ` Sam @ 2017-08-30 6:22 ` Sam 2017-09-12 14:59 ` Sameeh Jubran 0 siblings, 1 reply; 8+ messages in thread From: Sam @ 2017-08-30 6:22 UTC (permalink / raw) To: Sameeh Jubran; +Cc: QEMU Developers, qemu-discuss Qemu-2.6.0 2017-08-30 14:20 GMT+08:00 Sam <batmanustc@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 <sameeh@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 <batmanustc@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 <batmanustc@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 <batmanustc@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 <batmanustc@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>.* >> > > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [QGA] Bug of qga? 2017-08-30 6:22 ` Sam @ 2017-09-12 14:59 ` Sameeh Jubran 0 siblings, 0 replies; 8+ messages in thread From: Sameeh Jubran @ 2017-09-12 14:59 UTC (permalink / raw) To: Sam; +Cc: QEMU Developers, qemu-discuss 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 <batmanustc@gmail.com> wrote: > Qemu-2.6.0 > > 2017-08-30 14:20 GMT+08:00 Sam <batmanustc@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 <sameeh@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 <batmanustc@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 <batmanustc@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 <batmanustc@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 <batmanustc@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>.* ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-09-12 14:59 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-08-25 2:11 [Qemu-devel] [QGA] Bug of qga? Sam 2017-08-25 3:09 ` Sam 2017-08-29 5:52 ` Sam 2017-08-29 6:19 ` Sam 2017-08-29 9:04 ` Sameeh Jubran 2017-08-30 6:20 ` Sam 2017-08-30 6:22 ` Sam 2017-09-12 14:59 ` Sameeh Jubran
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.