All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <cover.1610748224.git.edvin.torok@citrix.com>

diff --git a/a/1.txt b/N1/1.txt
index 386afc6..4ea9b06 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,18 +1,41 @@
-The patches were posted previously, this is a repost after the XSA series.
+This is the oxenstored live update code that was shipped with the XSAs.
+It reuses the existing text-based dump format to ease backporting to
+old versions of Xen.
+There is a separate series that implements the C xenstored migration binary
+format on top of this.
 
-For convenience here is a tree with all patch series applied:
+Feedback welcome either on this PR or on the mailing list:
 https://github.com/edwintorok/xen/pull/1
 
-Edwin Török (2):
-  automation/: add Ubuntu:focal container
-  Makefile: add build-tools-oxenstored
+Edvin Torok (1):
+  tools/ocaml/xenstored: Implement live update for socket connections
 
- Makefile                                 |  6 +++
- automation/build/ubuntu/focal.dockerfile | 48 ++++++++++++++++++++++++
- automation/scripts/containerize          |  1 +
- tools/ocaml/Makefile                     |  8 ++++
- 4 files changed, 63 insertions(+)
- create mode 100644 automation/build/ubuntu/focal.dockerfile
+Edwin Török (6):
+  Add workaround for xenstore-control flood issues
+  docs/designs/xenstore-migration.md: clarify that deletes are recursive
+  tools/ocaml/xenstored: only quit on SIGTERM when a reload is possible
+  tools/ocaml/xenstored: Automatically resume when possible
+  tools/ocaml/xenstored: add cooperative live-update command
+  tools/ocaml/xenstored: start live update process
+
+Juergen Gross (1):
+  tools/xenstore: add live update command to xenstore-control
+
+ docs/designs/xenstore-migration.md   |   3 +-
+ docs/misc/xenstore.txt               |  21 ++
+ tools/ocaml/xenstored/connection.ml  |  56 ++++-
+ tools/ocaml/xenstored/connections.ml |   8 +
+ tools/ocaml/xenstored/logging.ml     |   3 +
+ tools/ocaml/xenstored/parse_arg.ml   |   4 +
+ tools/ocaml/xenstored/process.ml     | 139 +++++++++++
+ tools/ocaml/xenstored/stdext.ml      |   6 +
+ tools/ocaml/xenstored/store.ml       |   2 +-
+ tools/ocaml/xenstored/utils.ml       |  12 +
+ tools/ocaml/xenstored/xenstored.ml   | 126 +++++++---
+ tools/xenstore/Makefile              |   3 +-
+ tools/xenstore/xenstore_control.c    | 345 +++++++++++++++++++++++++--
+ tools/xenstore/xenstored_core.c      |   7 +-
+ 14 files changed, 681 insertions(+), 54 deletions(-)
 
 -- 
 2.29.2
diff --git a/a/content_digest b/N1/content_digest
index 58d99df..e79bdd2 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,9 +1,8 @@
  "From\0Edwin T\303\266r\303\266k <edvin.torok@citrix.com>\0"
- "Subject\0[PATCH v2 0/2] oxenstored build enhancements\0"
- "Date\0Fri, 15 Jan 2021 22:28:39 +0000\0"
+ "Subject\0[PATCH v2 0/8] tools/ocaml/xenstored: implement live update\0"
+ "Date\0Fri, 15 Jan 2021 22:28:42 +0000\0"
  "To\0<xen-devel@lists.xenproject.org>\0"
  "Cc\0Edwin T\303\266r\303\266k <edvin.torok@citrix.com>"
-  Doug Goldstein <cardoe@cardoe.com>
   Andrew Cooper <andrew.cooper3@citrix.com>
   George Dunlap <george.dunlap@citrix.com>
   Ian Jackson <iwj@xenproject.org>
@@ -11,27 +10,51 @@
   Julien Grall <julien@xen.org>
   Stefano Stabellini <sstabellini@kernel.org>
   Wei Liu <wl@xen.org>
+  Juergen Gross <jgross@suse.com>
   Christian Lindig <christian.lindig@citrix.com>
  " David Scott <dave@recoil.org>\0"
  "\00:1\0"
  "b\0"
- "The patches were posted previously, this is a repost after the XSA series.\n"
+ "This is the oxenstored live update code that was shipped with the XSAs.\n"
+ "It reuses the existing text-based dump format to ease backporting to\n"
+ "old versions of Xen.\n"
+ "There is a separate series that implements the C xenstored migration binary\n"
+ "format on top of this.\n"
  "\n"
- "For convenience here is a tree with all patch series applied:\n"
+ "Feedback welcome either on this PR or on the mailing list:\n"
  "https://github.com/edwintorok/xen/pull/1\n"
  "\n"
- "Edwin T\303\266r\303\266k (2):\n"
- "  automation/: add Ubuntu:focal container\n"
- "  Makefile: add build-tools-oxenstored\n"
+ "Edvin Torok (1):\n"
+ "  tools/ocaml/xenstored: Implement live update for socket connections\n"
  "\n"
- " Makefile                                 |  6 +++\n"
- " automation/build/ubuntu/focal.dockerfile | 48 ++++++++++++++++++++++++\n"
- " automation/scripts/containerize          |  1 +\n"
- " tools/ocaml/Makefile                     |  8 ++++\n"
- " 4 files changed, 63 insertions(+)\n"
- " create mode 100644 automation/build/ubuntu/focal.dockerfile\n"
+ "Edwin T\303\266r\303\266k (6):\n"
+ "  Add workaround for xenstore-control flood issues\n"
+ "  docs/designs/xenstore-migration.md: clarify that deletes are recursive\n"
+ "  tools/ocaml/xenstored: only quit on SIGTERM when a reload is possible\n"
+ "  tools/ocaml/xenstored: Automatically resume when possible\n"
+ "  tools/ocaml/xenstored: add cooperative live-update command\n"
+ "  tools/ocaml/xenstored: start live update process\n"
+ "\n"
+ "Juergen Gross (1):\n"
+ "  tools/xenstore: add live update command to xenstore-control\n"
+ "\n"
+ " docs/designs/xenstore-migration.md   |   3 +-\n"
+ " docs/misc/xenstore.txt               |  21 ++\n"
+ " tools/ocaml/xenstored/connection.ml  |  56 ++++-\n"
+ " tools/ocaml/xenstored/connections.ml |   8 +\n"
+ " tools/ocaml/xenstored/logging.ml     |   3 +\n"
+ " tools/ocaml/xenstored/parse_arg.ml   |   4 +\n"
+ " tools/ocaml/xenstored/process.ml     | 139 +++++++++++\n"
+ " tools/ocaml/xenstored/stdext.ml      |   6 +\n"
+ " tools/ocaml/xenstored/store.ml       |   2 +-\n"
+ " tools/ocaml/xenstored/utils.ml       |  12 +\n"
+ " tools/ocaml/xenstored/xenstored.ml   | 126 +++++++---\n"
+ " tools/xenstore/Makefile              |   3 +-\n"
+ " tools/xenstore/xenstore_control.c    | 345 +++++++++++++++++++++++++--\n"
+ " tools/xenstore/xenstored_core.c      |   7 +-\n"
+ " 14 files changed, 681 insertions(+), 54 deletions(-)\n"
  "\n"
  "-- \n"
  2.29.2
 
-7a52fcd901b998c1ab2a1bbb1342d109da5951981915c7e0dbf4e10f0d52d003
+bb25c1005f8056fbd02379d2f07a386d3addf3e87a21830855b03c98149bd234

diff --git a/a/1.txt b/N2/1.txt
index 386afc6..abeae65 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -1,18 +1,33 @@
-The patches were posted previously, this is a repost after the XSA series.
+Various speed optimizations that have already been posted,
+but committing them was delayed to avoid conflicts with XSAs.
+The XSAs are out, so these are ready to go now.
+
+The switch to Maps may expose bugs in certain xenstored clients,
+which previously relied on iteration order of the DIRECTORY response.
+
+In our testing we found one such case, which turned out to be a bug
+in a testsuite (it always dropped the 1st xenstore key).
 
 For convenience here is a tree with all patch series applied:
 https://github.com/edwintorok/xen/pull/1
 
-Edwin Török (2):
-  automation/: add Ubuntu:focal container
-  Makefile: add build-tools-oxenstored
+Edwin Török (4):
+  tools/ocaml/xenstored: replace hand rolled GC with weak GC references
+  tools/ocaml/xenstored: backport find_opt/update from 4.06
+  tools/ocaml/xenstored: use more efficient node trees
+  tools/ocaml/xenstored: use more efficient tries
 
- Makefile                                 |  6 +++
- automation/build/ubuntu/focal.dockerfile | 48 ++++++++++++++++++++++++
- automation/scripts/containerize          |  1 +
- tools/ocaml/Makefile                     |  8 ++++
- 4 files changed, 63 insertions(+)
- create mode 100644 automation/build/ubuntu/focal.dockerfile
+ tools/ocaml/xenstored/connection.ml  |  3 --
+ tools/ocaml/xenstored/connections.ml |  2 +-
+ tools/ocaml/xenstored/history.ml     | 14 ------
+ tools/ocaml/xenstored/stdext.ml      | 19 ++++++++
+ tools/ocaml/xenstored/store.ml       | 51 +++++++++-----------
+ tools/ocaml/xenstored/symbol.ml      | 70 +++++++---------------------
+ tools/ocaml/xenstored/symbol.mli     | 22 +++------
+ tools/ocaml/xenstored/trie.ml        | 61 +++++++++++-------------
+ tools/ocaml/xenstored/trie.mli       | 26 +++++------
+ tools/ocaml/xenstored/xenstored.ml   | 16 +------
+ 10 files changed, 109 insertions(+), 175 deletions(-)
 
 -- 
 2.29.2
diff --git a/a/content_digest b/N2/content_digest
index 58d99df..d2c159a 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -1,37 +1,46 @@
  "From\0Edwin T\303\266r\303\266k <edvin.torok@citrix.com>\0"
- "Subject\0[PATCH v2 0/2] oxenstored build enhancements\0"
- "Date\0Fri, 15 Jan 2021 22:28:39 +0000\0"
+ "Subject\0[PATCH v4 0/4] tools/ocaml/xenstored: optimizations\0"
+ "Date\0Fri, 15 Jan 2021 22:28:54 +0000\0"
  "To\0<xen-devel@lists.xenproject.org>\0"
  "Cc\0Edwin T\303\266r\303\266k <edvin.torok@citrix.com>"
-  Doug Goldstein <cardoe@cardoe.com>
-  Andrew Cooper <andrew.cooper3@citrix.com>
-  George Dunlap <george.dunlap@citrix.com>
-  Ian Jackson <iwj@xenproject.org>
-  Jan Beulich <jbeulich@suse.com>
-  Julien Grall <julien@xen.org>
-  Stefano Stabellini <sstabellini@kernel.org>
-  Wei Liu <wl@xen.org>
   Christian Lindig <christian.lindig@citrix.com>
- " David Scott <dave@recoil.org>\0"
+  David Scott <dave@recoil.org>
+  Ian Jackson <iwj@xenproject.org>
+ " Wei Liu <wl@xen.org>\0"
  "\00:1\0"
  "b\0"
- "The patches were posted previously, this is a repost after the XSA series.\n"
+ "Various speed optimizations that have already been posted,\n"
+ "but committing them was delayed to avoid conflicts with XSAs.\n"
+ "The XSAs are out, so these are ready to go now.\n"
+ "\n"
+ "The switch to Maps may expose bugs in certain xenstored clients,\n"
+ "which previously relied on iteration order of the DIRECTORY response.\n"
+ "\n"
+ "In our testing we found one such case, which turned out to be a bug\n"
+ "in a testsuite (it always dropped the 1st xenstore key).\n"
  "\n"
  "For convenience here is a tree with all patch series applied:\n"
  "https://github.com/edwintorok/xen/pull/1\n"
  "\n"
- "Edwin T\303\266r\303\266k (2):\n"
- "  automation/: add Ubuntu:focal container\n"
- "  Makefile: add build-tools-oxenstored\n"
+ "Edwin T\303\266r\303\266k (4):\n"
+ "  tools/ocaml/xenstored: replace hand rolled GC with weak GC references\n"
+ "  tools/ocaml/xenstored: backport find_opt/update from 4.06\n"
+ "  tools/ocaml/xenstored: use more efficient node trees\n"
+ "  tools/ocaml/xenstored: use more efficient tries\n"
  "\n"
- " Makefile                                 |  6 +++\n"
- " automation/build/ubuntu/focal.dockerfile | 48 ++++++++++++++++++++++++\n"
- " automation/scripts/containerize          |  1 +\n"
- " tools/ocaml/Makefile                     |  8 ++++\n"
- " 4 files changed, 63 insertions(+)\n"
- " create mode 100644 automation/build/ubuntu/focal.dockerfile\n"
+ " tools/ocaml/xenstored/connection.ml  |  3 --\n"
+ " tools/ocaml/xenstored/connections.ml |  2 +-\n"
+ " tools/ocaml/xenstored/history.ml     | 14 ------\n"
+ " tools/ocaml/xenstored/stdext.ml      | 19 ++++++++\n"
+ " tools/ocaml/xenstored/store.ml       | 51 +++++++++-----------\n"
+ " tools/ocaml/xenstored/symbol.ml      | 70 +++++++---------------------\n"
+ " tools/ocaml/xenstored/symbol.mli     | 22 +++------\n"
+ " tools/ocaml/xenstored/trie.ml        | 61 +++++++++++-------------\n"
+ " tools/ocaml/xenstored/trie.mli       | 26 +++++------\n"
+ " tools/ocaml/xenstored/xenstored.ml   | 16 +------\n"
+ " 10 files changed, 109 insertions(+), 175 deletions(-)\n"
  "\n"
  "-- \n"
  2.29.2
 
-7a52fcd901b998c1ab2a1bbb1342d109da5951981915c7e0dbf4e10f0d52d003
+00bf1a28de445891ca38d310fd510a741e5ea134d29556cbe0b600cc133e6785

diff --git a/a/1.txt b/N3/1.txt
index 386afc6..f867f72 100644
--- a/a/1.txt
+++ b/N3/1.txt
@@ -1,18 +1,22 @@
-The patches were posted previously, this is a repost after the XSA series.
+For debugging/testing purposes we want to be able to control the domid
+from the XAPI toolstack too. Xen supports this since a long time.
 
 For convenience here is a tree with all patch series applied:
 https://github.com/edwintorok/xen/pull/1
 
+
 Edwin Török (2):
-  automation/: add Ubuntu:focal container
-  Makefile: add build-tools-oxenstored
+  tools/ocaml/xenstored: trim txhistory on xenbus reconnect
+  tools/ocaml/libs/xc: backward compatible domid control at domain
+    creation time
 
- Makefile                                 |  6 +++
- automation/build/ubuntu/focal.dockerfile | 48 ++++++++++++++++++++++++
- automation/scripts/containerize          |  1 +
- tools/ocaml/Makefile                     |  8 ++++
- 4 files changed, 63 insertions(+)
- create mode 100644 automation/build/ubuntu/focal.dockerfile
+ tools/ocaml/libs/xc/xenctrl.ml      | 5 ++++-
+ tools/ocaml/libs/xc/xenctrl.mli     | 4 ++--
+ tools/ocaml/libs/xc/xenctrl_stubs.c | 6 +++---
+ tools/ocaml/xenstored/connection.ml | 2 +-
+ tools/ocaml/xenstored/history.ml    | 4 ++++
+ tools/ocaml/xenstored/process.ml    | 4 ++--
+ 6 files changed, 16 insertions(+), 9 deletions(-)
 
 -- 
 2.29.2
diff --git a/a/content_digest b/N3/content_digest
index 58d99df..44da7ef 100644
--- a/a/content_digest
+++ b/N3/content_digest
@@ -1,37 +1,35 @@
  "From\0Edwin T\303\266r\303\266k <edvin.torok@citrix.com>\0"
- "Subject\0[PATCH v2 0/2] oxenstored build enhancements\0"
- "Date\0Fri, 15 Jan 2021 22:28:39 +0000\0"
+ "Subject\0[PATCH v2 0/2] tools/ocaml/libs/xc: domid control\0"
+ "Date\0Fri, 15 Jan 2021 22:28:51 +0000\0"
  "To\0<xen-devel@lists.xenproject.org>\0"
  "Cc\0Edwin T\303\266r\303\266k <edvin.torok@citrix.com>"
-  Doug Goldstein <cardoe@cardoe.com>
-  Andrew Cooper <andrew.cooper3@citrix.com>
-  George Dunlap <george.dunlap@citrix.com>
-  Ian Jackson <iwj@xenproject.org>
-  Jan Beulich <jbeulich@suse.com>
-  Julien Grall <julien@xen.org>
-  Stefano Stabellini <sstabellini@kernel.org>
-  Wei Liu <wl@xen.org>
   Christian Lindig <christian.lindig@citrix.com>
- " David Scott <dave@recoil.org>\0"
+  David Scott <dave@recoil.org>
+  Ian Jackson <iwj@xenproject.org>
+ " Wei Liu <wl@xen.org>\0"
  "\00:1\0"
  "b\0"
- "The patches were posted previously, this is a repost after the XSA series.\n"
+ "For debugging/testing purposes we want to be able to control the domid\n"
+ "from the XAPI toolstack too. Xen supports this since a long time.\n"
  "\n"
  "For convenience here is a tree with all patch series applied:\n"
  "https://github.com/edwintorok/xen/pull/1\n"
  "\n"
+ "\n"
  "Edwin T\303\266r\303\266k (2):\n"
- "  automation/: add Ubuntu:focal container\n"
- "  Makefile: add build-tools-oxenstored\n"
+ "  tools/ocaml/xenstored: trim txhistory on xenbus reconnect\n"
+ "  tools/ocaml/libs/xc: backward compatible domid control at domain\n"
+ "    creation time\n"
  "\n"
- " Makefile                                 |  6 +++\n"
- " automation/build/ubuntu/focal.dockerfile | 48 ++++++++++++++++++++++++\n"
- " automation/scripts/containerize          |  1 +\n"
- " tools/ocaml/Makefile                     |  8 ++++\n"
- " 4 files changed, 63 insertions(+)\n"
- " create mode 100644 automation/build/ubuntu/focal.dockerfile\n"
+ " tools/ocaml/libs/xc/xenctrl.ml      | 5 ++++-\n"
+ " tools/ocaml/libs/xc/xenctrl.mli     | 4 ++--\n"
+ " tools/ocaml/libs/xc/xenctrl_stubs.c | 6 +++---\n"
+ " tools/ocaml/xenstored/connection.ml | 2 +-\n"
+ " tools/ocaml/xenstored/history.ml    | 4 ++++\n"
+ " tools/ocaml/xenstored/process.ml    | 4 ++--\n"
+ " 6 files changed, 16 insertions(+), 9 deletions(-)\n"
  "\n"
  "-- \n"
  2.29.2
 
-7a52fcd901b998c1ab2a1bbb1342d109da5951981915c7e0dbf4e10f0d52d003
+ecd71e7d577b52cf2b0ae3301cd2a49241e8719edfcf58396eac8d8fa33490eb

diff --git a/a/1.txt b/N4/1.txt
index 386afc6..5e7d6b4 100644
--- a/a/1.txt
+++ b/N4/1.txt
@@ -1,18 +1,23 @@
-The patches were posted previously, this is a repost after the XSA series.
+Fix bugs discovered by structured fuzz testing.
+See 'tools/ocaml/xenstored: structured fuzz testing' series for the tests.
+
+These have been discovered while testing the XSA fixes, but they are not security related.
 
 For convenience here is a tree with all patch series applied:
 https://github.com/edwintorok/xen/pull/1
 
-Edwin Török (2):
-  automation/: add Ubuntu:focal container
-  Makefile: add build-tools-oxenstored
+Edwin Török (4):
+  tools/ocaml/libs/xb: do not crash after xenbus is unmapped
+  tools/ocaml/xenstored: fix quota calculation for mkdir EEXIST
+  tools/ocaml/xenstored: reject invalid watch paths early
+  tools/ocaml/xenstored: mkdir conflicts were sometimes missed
 
- Makefile                                 |  6 +++
- automation/build/ubuntu/focal.dockerfile | 48 ++++++++++++++++++++++++
- automation/scripts/containerize          |  1 +
- tools/ocaml/Makefile                     |  8 ++++
- 4 files changed, 63 insertions(+)
- create mode 100644 automation/build/ubuntu/focal.dockerfile
+ tools/ocaml/libs/xb/xs_ring_stubs.c  | 3 +++
+ tools/ocaml/xenstored/connection.ml  | 5 ++---
+ tools/ocaml/xenstored/connections.ml | 4 +++-
+ tools/ocaml/xenstored/store.ml       | 1 +
+ tools/ocaml/xenstored/transaction.ml | 2 +-
+ 5 files changed, 10 insertions(+), 5 deletions(-)
 
 -- 
 2.29.2
diff --git a/a/content_digest b/N4/content_digest
index 58d99df..8fcb65e 100644
--- a/a/content_digest
+++ b/N4/content_digest
@@ -1,37 +1,41 @@
  "From\0Edwin T\303\266r\303\266k <edvin.torok@citrix.com>\0"
- "Subject\0[PATCH v2 0/2] oxenstored build enhancements\0"
- "Date\0Fri, 15 Jan 2021 22:28:39 +0000\0"
+ "Subject\0[PATCH v1 0/4] tools/ocaml/xenstored: bugfixes\0"
+ "Date\0Fri, 15 Jan 2021 22:29:05 +0000\0"
  "To\0<xen-devel@lists.xenproject.org>\0"
  "Cc\0Edwin T\303\266r\303\266k <edvin.torok@citrix.com>"
-  Doug Goldstein <cardoe@cardoe.com>
+  Christian Lindig <christian.lindig@citrix.com>
+  David Scott <dave@recoil.org>
+  Ian Jackson <iwj@xenproject.org>
+  Wei Liu <wl@xen.org>
   Andrew Cooper <andrew.cooper3@citrix.com>
   George Dunlap <george.dunlap@citrix.com>
-  Ian Jackson <iwj@xenproject.org>
   Jan Beulich <jbeulich@suse.com>
   Julien Grall <julien@xen.org>
-  Stefano Stabellini <sstabellini@kernel.org>
-  Wei Liu <wl@xen.org>
-  Christian Lindig <christian.lindig@citrix.com>
- " David Scott <dave@recoil.org>\0"
+ " Stefano Stabellini <sstabellini@kernel.org>\0"
  "\00:1\0"
  "b\0"
- "The patches were posted previously, this is a repost after the XSA series.\n"
+ "Fix bugs discovered by structured fuzz testing.\n"
+ "See 'tools/ocaml/xenstored: structured fuzz testing' series for the tests.\n"
+ "\n"
+ "These have been discovered while testing the XSA fixes, but they are not security related.\n"
  "\n"
  "For convenience here is a tree with all patch series applied:\n"
  "https://github.com/edwintorok/xen/pull/1\n"
  "\n"
- "Edwin T\303\266r\303\266k (2):\n"
- "  automation/: add Ubuntu:focal container\n"
- "  Makefile: add build-tools-oxenstored\n"
+ "Edwin T\303\266r\303\266k (4):\n"
+ "  tools/ocaml/libs/xb: do not crash after xenbus is unmapped\n"
+ "  tools/ocaml/xenstored: fix quota calculation for mkdir EEXIST\n"
+ "  tools/ocaml/xenstored: reject invalid watch paths early\n"
+ "  tools/ocaml/xenstored: mkdir conflicts were sometimes missed\n"
  "\n"
- " Makefile                                 |  6 +++\n"
- " automation/build/ubuntu/focal.dockerfile | 48 ++++++++++++++++++++++++\n"
- " automation/scripts/containerize          |  1 +\n"
- " tools/ocaml/Makefile                     |  8 ++++\n"
- " 4 files changed, 63 insertions(+)\n"
- " create mode 100644 automation/build/ubuntu/focal.dockerfile\n"
+ " tools/ocaml/libs/xb/xs_ring_stubs.c  | 3 +++\n"
+ " tools/ocaml/xenstored/connection.ml  | 5 ++---\n"
+ " tools/ocaml/xenstored/connections.ml | 4 +++-\n"
+ " tools/ocaml/xenstored/store.ml       | 1 +\n"
+ " tools/ocaml/xenstored/transaction.ml | 2 +-\n"
+ " 5 files changed, 10 insertions(+), 5 deletions(-)\n"
  "\n"
  "-- \n"
  2.29.2
 
-7a52fcd901b998c1ab2a1bbb1342d109da5951981915c7e0dbf4e10f0d52d003
+17e5b2d1f281c8a762c46bede4c9cb6b9295c3bf8ee1e691fe40e0120036ece8

diff --git a/a/1.txt b/N5/1.txt
index 386afc6..59e13fc 100644
--- a/a/1.txt
+++ b/N5/1.txt
@@ -1,18 +1,97 @@
-The patches were posted previously, this is a repost after the XSA series.
+Test that live update functionality works correctly by writing a
+Quickcheck-style property test that asserts that oxenstored state
+is the same whether the live-update command was run or not.
 
-For convenience here is a tree with all patch series applied:
+Crowbar is used for supplying random numbers to quickcheck,
+which optionally works with AFL as a driver, but can also be used
+without external dependencies.
+
+This is also called structured fuzz testing, because we don't fuzz
+the xenstore commands or state directly, but generate some valid looking
+trees and commands based on fuzzing the parameters of these commands.
+
+Inspired by the 'qcstm' package and presentation at ICFP 2020,
+but using 'crowbar' instead, due to its integration with AFL.
+
+This is a work in progress, transaction live updates do not work yet,
+and should be split out from this series.
+
+For convenience here is a series with all patches applied,
+review welcome either there or on the mailing list:
 https://github.com/edwintorok/xen/pull/1
 
-Edwin Török (2):
-  automation/: add Ubuntu:focal container
-  Makefile: add build-tools-oxenstored
+This series hasn't been reviewed yet, but has been in development during
+the XSA series.
+It (and myself) kept finding new XSAs and bugs to fix, which left the test itself in
+an unfinished state, it is possible to improve it to find more bugs.
+
+Edwin Török (5):
+  tools/ocaml: add unit test skeleton with Dune build system
+  tools/ocaml/xenstored: implement the live migration binary format
+  tools/ocaml/xenstored: add binary dump format support
+  tools/ocaml/xenstored: add support for binary format
+  Add structured fuzzing unit test
 
- Makefile                                 |  6 +++
- automation/build/ubuntu/focal.dockerfile | 48 ++++++++++++++++++++++++
- automation/scripts/containerize          |  1 +
- tools/ocaml/Makefile                     |  8 ++++
- 4 files changed, 63 insertions(+)
- create mode 100644 automation/build/ubuntu/focal.dockerfile
+ tools/ocaml/.gitignore                        |   2 +
+ tools/ocaml/Makefile                          |  52 ++
+ tools/ocaml/dune-project                      |   5 +
+ tools/ocaml/libs/eventchn/dune                |   8 +
+ tools/ocaml/libs/mmap/dune                    |   8 +
+ tools/ocaml/libs/xb/dune                      |   7 +
+ tools/ocaml/libs/xc/dune                      |   9 +
+ tools/ocaml/libs/xs/dune                      |   4 +
+ tools/ocaml/xen.opam                          |   0
+ tools/ocaml/xenstore.opam                     |   0
+ tools/ocaml/xenstored.opam                    |  18 +
+ tools/ocaml/xenstored/Makefile                |   3 +-
+ tools/ocaml/xenstored/connection.ml           |  63 +-
+ tools/ocaml/xenstored/disk.ml                 | 318 ++++++++
+ tools/ocaml/xenstored/dune                    |  19 +
+ tools/ocaml/xenstored/parse_arg.ml            |   2 +-
+ tools/ocaml/xenstored/perms.ml                |   2 +
+ tools/ocaml/xenstored/poll.ml                 |   3 +-
+ tools/ocaml/xenstored/process.ml              |  12 +-
+ tools/ocaml/xenstored/store.ml                |   1 +
+ tools/ocaml/xenstored/test/dune               |  11 +
+ tools/ocaml/xenstored/test/generator.ml       | 189 +++++
+ tools/ocaml/xenstored/test/model.ml           | 253 ++++++
+ tools/ocaml/xenstored/test/old/arbitrary.ml   | 261 +++++++
+ tools/ocaml/xenstored/test/old/gen_paths.ml   |  66 ++
+ .../xenstored/test/old/xenstored_test.ml      | 527 +++++++++++++
+ tools/ocaml/xenstored/test/pathtree.ml        |  40 +
+ tools/ocaml/xenstored/test/testable.ml        | 364 +++++++++
+ tools/ocaml/xenstored/test/types.ml           | 427 ++++++++++
+ tools/ocaml/xenstored/test/xenctrl.ml         |  48 ++
+ tools/ocaml/xenstored/test/xeneventchn.ml     |  50 ++
+ tools/ocaml/xenstored/test/xenstored_test.ml  | 147 ++++
+ tools/ocaml/xenstored/test/xs_protocol.ml     | 733 ++++++++++++++++++
+ tools/ocaml/xenstored/transaction.ml          | 119 ++-
+ tools/ocaml/xenstored/xenstored.ml            | 205 ++++-
+ 35 files changed, 3918 insertions(+), 58 deletions(-)
+ create mode 100644 tools/ocaml/.gitignore
+ create mode 100644 tools/ocaml/dune-project
+ create mode 100644 tools/ocaml/libs/eventchn/dune
+ create mode 100644 tools/ocaml/libs/mmap/dune
+ create mode 100644 tools/ocaml/libs/xb/dune
+ create mode 100644 tools/ocaml/libs/xc/dune
+ create mode 100644 tools/ocaml/libs/xs/dune
+ create mode 100644 tools/ocaml/xen.opam
+ create mode 100644 tools/ocaml/xenstore.opam
+ create mode 100644 tools/ocaml/xenstored.opam
+ create mode 100644 tools/ocaml/xenstored/dune
+ create mode 100644 tools/ocaml/xenstored/test/dune
+ create mode 100644 tools/ocaml/xenstored/test/generator.ml
+ create mode 100644 tools/ocaml/xenstored/test/model.ml
+ create mode 100644 tools/ocaml/xenstored/test/old/arbitrary.ml
+ create mode 100644 tools/ocaml/xenstored/test/old/gen_paths.ml
+ create mode 100644 tools/ocaml/xenstored/test/old/xenstored_test.ml
+ create mode 100644 tools/ocaml/xenstored/test/pathtree.ml
+ create mode 100644 tools/ocaml/xenstored/test/testable.ml
+ create mode 100644 tools/ocaml/xenstored/test/types.ml
+ create mode 100644 tools/ocaml/xenstored/test/xenctrl.ml
+ create mode 100644 tools/ocaml/xenstored/test/xeneventchn.ml
+ create mode 100644 tools/ocaml/xenstored/test/xenstored_test.ml
+ create mode 100644 tools/ocaml/xenstored/test/xs_protocol.ml
 
 -- 
 2.29.2
diff --git a/a/content_digest b/N5/content_digest
index 58d99df..5ba159e 100644
--- a/a/content_digest
+++ b/N5/content_digest
@@ -1,37 +1,110 @@
  "From\0Edwin T\303\266r\303\266k <edvin.torok@citrix.com>\0"
- "Subject\0[PATCH v2 0/2] oxenstored build enhancements\0"
- "Date\0Fri, 15 Jan 2021 22:28:39 +0000\0"
+ "Subject\0[PATCH v1 0/5] tools/ocaml/xenstored: structured fuzz testing\0"
+ "Date\0Fri, 15 Jan 2021 22:28:59 +0000\0"
  "To\0<xen-devel@lists.xenproject.org>\0"
  "Cc\0Edwin T\303\266r\303\266k <edvin.torok@citrix.com>"
-  Doug Goldstein <cardoe@cardoe.com>
-  Andrew Cooper <andrew.cooper3@citrix.com>
-  George Dunlap <george.dunlap@citrix.com>
-  Ian Jackson <iwj@xenproject.org>
-  Jan Beulich <jbeulich@suse.com>
-  Julien Grall <julien@xen.org>
-  Stefano Stabellini <sstabellini@kernel.org>
-  Wei Liu <wl@xen.org>
   Christian Lindig <christian.lindig@citrix.com>
- " David Scott <dave@recoil.org>\0"
+  David Scott <dave@recoil.org>
+  Ian Jackson <iwj@xenproject.org>
+ " Wei Liu <wl@xen.org>\0"
  "\00:1\0"
  "b\0"
- "The patches were posted previously, this is a repost after the XSA series.\n"
+ "Test that live update functionality works correctly by writing a\n"
+ "Quickcheck-style property test that asserts that oxenstored state\n"
+ "is the same whether the live-update command was run or not.\n"
+ "\n"
+ "Crowbar is used for supplying random numbers to quickcheck,\n"
+ "which optionally works with AFL as a driver, but can also be used\n"
+ "without external dependencies.\n"
+ "\n"
+ "This is also called structured fuzz testing, because we don't fuzz\n"
+ "the xenstore commands or state directly, but generate some valid looking\n"
+ "trees and commands based on fuzzing the parameters of these commands.\n"
  "\n"
- "For convenience here is a tree with all patch series applied:\n"
+ "Inspired by the 'qcstm' package and presentation at ICFP 2020,\n"
+ "but using 'crowbar' instead, due to its integration with AFL.\n"
+ "\n"
+ "This is a work in progress, transaction live updates do not work yet,\n"
+ "and should be split out from this series.\n"
+ "\n"
+ "For convenience here is a series with all patches applied,\n"
+ "review welcome either there or on the mailing list:\n"
  "https://github.com/edwintorok/xen/pull/1\n"
  "\n"
- "Edwin T\303\266r\303\266k (2):\n"
- "  automation/: add Ubuntu:focal container\n"
- "  Makefile: add build-tools-oxenstored\n"
+ "This series hasn't been reviewed yet, but has been in development during\n"
+ "the XSA series.\n"
+ "It (and myself) kept finding new XSAs and bugs to fix, which left the test itself in\n"
+ "an unfinished state, it is possible to improve it to find more bugs.\n"
+ "\n"
+ "Edwin T\303\266r\303\266k (5):\n"
+ "  tools/ocaml: add unit test skeleton with Dune build system\n"
+ "  tools/ocaml/xenstored: implement the live migration binary format\n"
+ "  tools/ocaml/xenstored: add binary dump format support\n"
+ "  tools/ocaml/xenstored: add support for binary format\n"
+ "  Add structured fuzzing unit test\n"
  "\n"
- " Makefile                                 |  6 +++\n"
- " automation/build/ubuntu/focal.dockerfile | 48 ++++++++++++++++++++++++\n"
- " automation/scripts/containerize          |  1 +\n"
- " tools/ocaml/Makefile                     |  8 ++++\n"
- " 4 files changed, 63 insertions(+)\n"
- " create mode 100644 automation/build/ubuntu/focal.dockerfile\n"
+ " tools/ocaml/.gitignore                        |   2 +\n"
+ " tools/ocaml/Makefile                          |  52 ++\n"
+ " tools/ocaml/dune-project                      |   5 +\n"
+ " tools/ocaml/libs/eventchn/dune                |   8 +\n"
+ " tools/ocaml/libs/mmap/dune                    |   8 +\n"
+ " tools/ocaml/libs/xb/dune                      |   7 +\n"
+ " tools/ocaml/libs/xc/dune                      |   9 +\n"
+ " tools/ocaml/libs/xs/dune                      |   4 +\n"
+ " tools/ocaml/xen.opam                          |   0\n"
+ " tools/ocaml/xenstore.opam                     |   0\n"
+ " tools/ocaml/xenstored.opam                    |  18 +\n"
+ " tools/ocaml/xenstored/Makefile                |   3 +-\n"
+ " tools/ocaml/xenstored/connection.ml           |  63 +-\n"
+ " tools/ocaml/xenstored/disk.ml                 | 318 ++++++++\n"
+ " tools/ocaml/xenstored/dune                    |  19 +\n"
+ " tools/ocaml/xenstored/parse_arg.ml            |   2 +-\n"
+ " tools/ocaml/xenstored/perms.ml                |   2 +\n"
+ " tools/ocaml/xenstored/poll.ml                 |   3 +-\n"
+ " tools/ocaml/xenstored/process.ml              |  12 +-\n"
+ " tools/ocaml/xenstored/store.ml                |   1 +\n"
+ " tools/ocaml/xenstored/test/dune               |  11 +\n"
+ " tools/ocaml/xenstored/test/generator.ml       | 189 +++++\n"
+ " tools/ocaml/xenstored/test/model.ml           | 253 ++++++\n"
+ " tools/ocaml/xenstored/test/old/arbitrary.ml   | 261 +++++++\n"
+ " tools/ocaml/xenstored/test/old/gen_paths.ml   |  66 ++\n"
+ " .../xenstored/test/old/xenstored_test.ml      | 527 +++++++++++++\n"
+ " tools/ocaml/xenstored/test/pathtree.ml        |  40 +\n"
+ " tools/ocaml/xenstored/test/testable.ml        | 364 +++++++++\n"
+ " tools/ocaml/xenstored/test/types.ml           | 427 ++++++++++\n"
+ " tools/ocaml/xenstored/test/xenctrl.ml         |  48 ++\n"
+ " tools/ocaml/xenstored/test/xeneventchn.ml     |  50 ++\n"
+ " tools/ocaml/xenstored/test/xenstored_test.ml  | 147 ++++\n"
+ " tools/ocaml/xenstored/test/xs_protocol.ml     | 733 ++++++++++++++++++\n"
+ " tools/ocaml/xenstored/transaction.ml          | 119 ++-\n"
+ " tools/ocaml/xenstored/xenstored.ml            | 205 ++++-\n"
+ " 35 files changed, 3918 insertions(+), 58 deletions(-)\n"
+ " create mode 100644 tools/ocaml/.gitignore\n"
+ " create mode 100644 tools/ocaml/dune-project\n"
+ " create mode 100644 tools/ocaml/libs/eventchn/dune\n"
+ " create mode 100644 tools/ocaml/libs/mmap/dune\n"
+ " create mode 100644 tools/ocaml/libs/xb/dune\n"
+ " create mode 100644 tools/ocaml/libs/xc/dune\n"
+ " create mode 100644 tools/ocaml/libs/xs/dune\n"
+ " create mode 100644 tools/ocaml/xen.opam\n"
+ " create mode 100644 tools/ocaml/xenstore.opam\n"
+ " create mode 100644 tools/ocaml/xenstored.opam\n"
+ " create mode 100644 tools/ocaml/xenstored/dune\n"
+ " create mode 100644 tools/ocaml/xenstored/test/dune\n"
+ " create mode 100644 tools/ocaml/xenstored/test/generator.ml\n"
+ " create mode 100644 tools/ocaml/xenstored/test/model.ml\n"
+ " create mode 100644 tools/ocaml/xenstored/test/old/arbitrary.ml\n"
+ " create mode 100644 tools/ocaml/xenstored/test/old/gen_paths.ml\n"
+ " create mode 100644 tools/ocaml/xenstored/test/old/xenstored_test.ml\n"
+ " create mode 100644 tools/ocaml/xenstored/test/pathtree.ml\n"
+ " create mode 100644 tools/ocaml/xenstored/test/testable.ml\n"
+ " create mode 100644 tools/ocaml/xenstored/test/types.ml\n"
+ " create mode 100644 tools/ocaml/xenstored/test/xenctrl.ml\n"
+ " create mode 100644 tools/ocaml/xenstored/test/xeneventchn.ml\n"
+ " create mode 100644 tools/ocaml/xenstored/test/xenstored_test.ml\n"
+ " create mode 100644 tools/ocaml/xenstored/test/xs_protocol.ml\n"
  "\n"
  "-- \n"
  2.29.2
 
-7a52fcd901b998c1ab2a1bbb1342d109da5951981915c7e0dbf4e10f0d52d003
+9032bcd68df5ac0541362f067ade4ea16669569815f42bb2da45ca484518eb5e

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.