[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Xen 4.4, xenstored and WATCH requests
Hello On Thu, Feb 25, 2016 at 03:54:14PM +0300, Sergei Lebedev wrote: > Hello list, > > I’m working on a Python client library for XenStore [1]. The library > implements two ways to access XenStore: via Unix socket and via /dev. > The /dev interface turned out to be a bit problematic, because it > ignores the req_id field for WATCH requests. > So the unix socket interface worked fine for you? > The spec [2] requires all responses (except WATCH_EVENT) to copy > req_id from request. So I wonder if it’s possible that the behaviour I > observe is in fact a bug in xenstored? > > Below is a Python script demonstrating the issue: > > import os > import struct > > WATCH = 4 > WRITE = 11 > > def send_packet(fd, op, rq_id, tx_id, payload): > data = struct.pack(b"IIII", op, rq_id, tx_id, len(payload)) + payload > os.write(fd, data) > > > def print_reply(fd): > op, rq_id, tx_id, size = struct.unpack(b"IIII", os.read(fd, 16)) > payload = os.read(fd, size) if size else b"" > print(op, rq_id, tx_id, payload) > > > fd = os.open("/dev/xen/xenbus", os.O_RDWR) > try: > send_packet(fd, WRITE, 24, 0, b"/foo\x00bar\x00") > print_reply(fd) # ACK for WRITE with rq_id = 24. > send_packet(fd, WATCH, 42, 0, b"/foo\x00token\x00") > print_reply(fd) # Spurious (?) WATCH_EVENT. > print_reply(fd) # ACK for WATCH with rq_id = 0. > finally: > os.close(fd) > > Example output: > > (11, 24, 0, 'OK\x00') > (15, 4294967295, 892960384, '/foo\x00token\x00') > (4, 0, 0, 'OK\x00') > > I’m running Xen 4.4 on Ubuntu 14.04 inside VirtualBox. > > $ uname -a > Linux xen-devel 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 > UTC 2015 x86_64 x86_64 x86_64 GNU/Linux > FWIW I tried you program in my own testbox running xen-unstable with Debian's stock 3.16 kernel, the result is the same. And in xen.git $ git diff origin/stable-4.4..origin/staging -- docs/misc/xenstore.txt shows nothing. So this is not a problem in 4.4 only. Wei. > Regards, > Sergei > > [1]: http://github.com/selectel/pyxs > [2]: http://xenbits.xen.org/docs/4.4-testing/misc/xenstore.txt > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxx > http://lists.xen.org/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |