-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unexpected Packet #11
Comments
Hi Dave, thanks for reporting this. Could you add full stack trace to the issue? |
|
The error you're seeing is due to the I remember seeing something like this a few years ago, but I can't recall the details. You could try simply logging all unexpected packets instead of raising an exception. Maybe XenStore actually issues another packet with correct Sadly, this is all I could help with for now. I would very much appreciate if you could find the time to pinpoint this, because I don't have a Xen machine at hand at the moment, and can't debug this easily. |
So I added some print statements and it does look like it gets executed twice
It looks like the send is being done twice here as reflected in the following: It sends the header then makes the request and on the second send the request_id changes. |
IIRC each request consists of a header and a payload, therefore the client sends a single request and, from what I see in your log, gets a single request back with incorrect
|
Here is better output.
You can see here that the request ID is sent correctly but the receive gets a new Request ID that does not match. Is this due to this being executed on a guest instance and not on the host itself? |
XenStore spec doesn't mention any exceptions for guest mode and XenStore client used by device drivers indeed returns an error in this case. The reason for that is that you receive a response for an unknown request, you can't do anything with it -- it's just noise. Could you try ignoring unmatched packets just to see if XenStore would send anything else after that? |
I did and the script just hangs waiting as the wait never gets told to stop that is in the RVar class get
|
Yep, this means that XenStore indeed echoes the wrong rq_id back. Which version of Xen / xenstored are you running? |
Underlying hosts are both running Xen 6.2. On the guest instances the same thing happens with both versions below: |
Thank you, sadly I wasn't able to find anything in the mailing list. Could you try to access the same path using official Python APis ( |
I built two servers on the same Xen hypervisor which is running XenServer 6.2 and both guests running the same version of xenstore (xe-guest-utilities-xenstore-6.2.0-1120.x86_64) The first guest is a RHEL 7 instance and the second is a Fedora 24 (also tried F25 and F26) instance. Both scripts are exactly the same running the following code:
On RHEL 7 running python 2 or python 3 the script succeeds and prints the mac addresses as expected.
On Fedora 24 using python 2 or python 3 produces the UnexpectedPacket exception as follows.
The UnexpectedPacket exception also happens in CentOS as well. Not sure what is different between RHEL 7 and the other operating systems as when running the same version of tools on the same hypervisor produces the results as detailed above. |
Trying to use this in order to interact with xenbus on a guest VM but keep running into an issue where I get the following:
UnexpectedPacket: _Packet(op=2, rq_id=66813, tx_id=0, size=360, payload='{}')
The code I am running is pretty straight forward as I am just trying to read the networking info from a particular mac address.
Is there something that I need to set that I am missing, or is it that this can only be run on the underlying host and not the guest vm.
The text was updated successfully, but these errors were encountered: