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.