[Xen-devel] [BUG] xs.watch and xs.unwatch are unreliable

2016-03-02 Thread Sergei Lebedev
Hi list, I’ve initially wanted to report another inconsistency in ``xen.lowlevel.xs`` documentation, but this time the issue is more subtle. Both ``xs.watch`` and ``xs.unwatch`` accept two arguments: a path to watch and a token. According to the documentation, the second argument must be a

[Xen-devel] Zero-sized reads from XenBus block

2016-03-02 Thread Sergei Lebedev
Hi list, I’m not sure if this is the expected behaviour, but it seems zero-sized reads from /dev/xen/xenbus block. Here’s sample code in Python import os fd = os.open("/dev/xen/xenbus", os.O_RDWR) os.read(fd, 0) # Blocks. The issue is not language-specific, similar code in C

[Xen-devel] [BUG] documentation of xs.transaction_end is inconsistent with the implementation

2016-02-29 Thread Sergei Lebedev
Hi list, The documentation of ``xs.transaction_end`` (from xen.lowlevel xs) doesn’t mention that the method accepts transaction handle #define xspy_transaction_end_doc "\n" \ "End the current transaction.\n"\

Re: [Xen-devel] [BUG] documentation of xs.transaction_end is inconsistent with the implementation

2016-02-29 Thread Sergei Lebedev
.\n"\ "\n"\ "Returns None on success.\n"\ "Raises xen.lowlevel.xs.Error on error.\n" \ "\n" Sergei > On 29 Feb 2016, at 14:55, Sergei Lebedev

Re: [Xen-devel] Xen 4.4, xenstored and WATCH requests

2016-02-26 Thread Sergei Lebedev
ix.com> wrote: > > 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.

[Xen-devel] Xen 4.4, xenstored and WATCH requests

2016-02-25 Thread Sergei Lebedev
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. The spec [2] requires all