[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

xenstore_lib.h and libxenstore API/ABI problems


  • To: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Tue, 2 Mar 2021 15:23:19 +0000
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9VcRKyDuvif0fqvHO93oxjhFwe+QYqaOTVNf3w5hsP8=; b=awivJZx84eiszFWPylNATEUTQA8zhqLyr90PhV7566wgRom/X7RLzpBpY0x6tkLRU2jeubS/759UF7f1FntstD6qpptGfYH65P83pv6b2ne+gYvziCfpP1SnKuuF69YAKxk14vuQn8sCCD6xvDaCK2EEKfoYAZQ36MpwIDEuxYW2NEbD/yGuJCvv6ktuBEOdP7b2otrXPs8aFWtUT7uaCoWRGPgsthPrDx+slvk0cEFHnGgBzgr17F3vMd3oZDPZYpVoe5Jn/RQ4XOLjSWso3vWQoM1qx9/7UgvFa1iOjQjmqR4axM5MNxI5aNtYdO3Lx+vjTuzxlT0IUlcE5a18LA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BQb53SkQXGwgKv1gOSARlE0ruliWM1yY4ZKLzKB2OeaZECQ8lDuVNlddGM981o6ycBur7aT7J16+fhZFWZ2/QH4P5gsLWFHI1jy5cUOUoCYDtzeUZqEsb1Z6oeuwi1QbHIb2pyRWk8GFGxo1cfvE2hEHBGskykH8bHzYTunRTwefmS6BkPAqIFrLV51nGdYMIa+ZaSFRZGnvWjCpesUIgl2chS+RABk7/d7yvm3lym8KcMfoNTlijlrczofCR1ZWoH8t+VjSqbQni3A0RDqnDNSunPhwpEgJNAgn4HADAl+BRUYodX6n8HoKqbbzXtLyViAvhBZEbdV9iD+jMgKBog==
  • Authentication-results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com
  • Cc: Juergen Gross <jgross@xxxxxxxx>, Ian Jackson <iwj@xxxxxxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>
  • Delivery-date: Tue, 02 Mar 2021 15:23:34 +0000
  • Ironport-sdr: OwFxmp9OBFhbdO7rB51ZeJYnpqYYWoU1spF1WSBNkp6+MVKemd7bY5wQjlTKE5zjFQEIJKcai3 rvF9QAF9WbWnxdDjZ3Vg06uO1XQJvODC7Kq2PjUPI4AQfGVLdvVF7kKSNf8Vv/7pfLntd7+6S3 BtGX9V5tEg9ARrhvyvcM6yhyawsl/BS2VoJPG7l7wl4U4pKAeFFi3/TmU/f7p4677nK1pZjCQA A9Bk3Mkz+IluXs8qV42cK13eGLUahCrLZ9a8HblSYchPkBIZcfCsIyEFdKH97/kEsKGaIGswoA 9Ws=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hello,

This is a total mess.

libxenstored does not have a stable ABI.  xenstore_lib.h contains:

* struct xs_permissions, which contains an enum - one of the very common
ABI traps.

* the prototypes for expanding_buffer_ensure(), sanitise_value() and
unsanitise_value(), which are inappropriately-namespaced symbols in
libxenstore

* struct expanding_buffer with a classic string-handling trap (int len).

* Various xenstored-internal details such as struct xs_tdb_record_hdr,
the internal permission bits, as well as stuff like
xs_daemon_{root,run}dir(), and worse xs_daemon_tdb(),  which have
absolutely no business being external to xenstored.


Its clear that most of this shouldn't be part of libxenstore, but that
ship has sailed.  3.0.3 is broken and cannot be fixed.

My best suggestion is that we freeze 3.0.3 where it is, and create a 4.0
which has all of the xenstore_lib.h content deleted.  That, AFAICT, gets
us something which is 99% compatible, and stands a chance of being able
to kept properly stable.

Thoughts?

~Andrew



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.