From 5b1f50be65c251a1dc0a4358c706c409f17a82c0 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Wed, 25 Oct 2023 14:43:24 +0200 Subject: [PATCH] jepsen: testing --- script/jepsen.garage/README.md | 6 +++--- script/jepsen.garage/src/jepsen/garage.clj | 1 + script/jepsen.garage/src/jepsen/garage/nemesis.clj | 9 +++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/script/jepsen.garage/README.md b/script/jepsen.garage/README.md index 0d647c72..464da4da 100644 --- a/script/jepsen.garage/README.md +++ b/script/jepsen.garage/README.md @@ -97,10 +97,10 @@ Command: `lein run test --nodes-file nodes.vagrant --time-limit 60 --rate 100 - Results: -- For now, no failures with clock-scramble nemesis + partition nemesis -> TODO long test run +- No failures with clock-scramble nemesis + db nemesis + partition nemesis (`--scenario cdp`) (0 failures in 10 runs). -- **Fails with layout reconfiguration nemesis** (`--scenario r`). - Example of a failed run: `garage set2/20231025T115033.553+0200` (2 failures in 2 runs). +- **Fails with just layout reconfiguration nemesis** (`--scenario r`). + Example of a failed run: `garage set2/20231025T141940.198+0200` (10 failures in 10 runs). TODO: investigate. This is the failure mode we are looking for and trying to fix for NLnet task 3. diff --git a/script/jepsen.garage/src/jepsen/garage.clj b/script/jepsen.garage/src/jepsen/garage.clj index 3fe527a6..17363c9d 100644 --- a/script/jepsen.garage/src/jepsen/garage.clj +++ b/script/jepsen.garage/src/jepsen/garage.clj @@ -28,6 +28,7 @@ "r" grgNemesis/scenario-r "pr" grgNemesis/scenario-pr "cpr" grgNemesis/scenario-cpr + "cdp" grgNemesis/scenario-cdp "dpr" grgNemesis/scenario-dpr}) (def patches diff --git a/script/jepsen.garage/src/jepsen/garage/nemesis.clj b/script/jepsen.garage/src/jepsen/garage/nemesis.clj index 0222e463..dfce0255 100644 --- a/script/jepsen.garage/src/jepsen/garage/nemesis.clj +++ b/script/jepsen.garage/src/jepsen/garage/nemesis.clj @@ -124,6 +124,14 @@ (combined/partition-package {:db (:db opts), :interval 1, :faults #{:partition}}) (reconfiguration-package {:interval 1})])) +(defn scenario-cdp + "Clock modifying + db + partition scenario" + [opts] + (combined/compose-packages + [(combined/clock-package {:db (:db opts), :interval 1, :faults #{:clock}}) + (combined/db-package {:db (:db opts), :interval 1, :faults #{:db :pause :kill}}) + (combined/partition-package {:db (:db opts), :interval 1, :faults #{:partition}})])) + (defn scenario-dpr "Db + partition + cluster reconfiguration scenario" [opts] @@ -131,3 +139,4 @@ [(combined/db-package {:db (:db opts), :interval 1, :faults #{:db :pause :kill}}) (combined/partition-package {:db (:db opts), :interval 1, :faults #{:partition}}) (reconfiguration-package {:interval 1})])) +