aboutsummaryrefslogtreecommitdiff
path: root/script/jepsen.garage/src
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2023-10-24 11:39:45 +0200
committerAlex Auvolat <alex@adnab.me>2023-10-24 11:39:45 +0200
commitd2c365767b0a4cb70dcbb1d20b75f41e0f9c20c8 (patch)
tree04be8d159078a42304bc19a20ac6ac5f206a657b /script/jepsen.garage/src
parentfb6c9a1243bd561d2a0de6b49c8debf37d566473 (diff)
downloadgarage-d2c365767b0a4cb70dcbb1d20b75f41e0f9c20c8.tar.gz
garage-d2c365767b0a4cb70dcbb1d20b75f41e0f9c20c8.zip
jepsen: more testing
Diffstat (limited to 'script/jepsen.garage/src')
-rw-r--r--script/jepsen.garage/src/jepsen/garage.clj6
-rw-r--r--script/jepsen.garage/src/jepsen/garage/nemesis.clj34
-rw-r--r--script/jepsen.garage/src/jepsen/garage/s3api.clj2
-rw-r--r--script/jepsen.garage/src/jepsen/garage/set.clj6
4 files changed, 39 insertions, 9 deletions
diff --git a/script/jepsen.garage/src/jepsen/garage.clj b/script/jepsen.garage/src/jepsen/garage.clj
index ace3e66a..6d64a1b8 100644
--- a/script/jepsen.garage/src/jepsen/garage.clj
+++ b/script/jepsen.garage/src/jepsen/garage.clj
@@ -23,8 +23,10 @@
(def scenari
"A map of scenari to the associated nemesis"
- {"cp" grgNemesis/scenario-cp
- "r" grgNemesis/scenario-r})
+ {"c" grgNemesis/scenario-c
+ "cp" grgNemesis/scenario-cp
+ "r" grgNemesis/scenario-r
+ "pr" grgNemesis/scenario-pr})
(def patches
"A map of patch names to Garage builds"
diff --git a/script/jepsen.garage/src/jepsen/garage/nemesis.clj b/script/jepsen.garage/src/jepsen/garage/nemesis.clj
index 9edfe418..e64bcaf1 100644
--- a/script/jepsen.garage/src/jepsen/garage/nemesis.clj
+++ b/script/jepsen.garage/src/jepsen/garage/nemesis.clj
@@ -7,6 +7,8 @@
[jepsen.garage.daemon :as grg]
[jepsen.control.util :as cu]))
+; ---- reconfiguration nemesis ----
+
(defn configure-present!
"Configure node to be active in new cluster layout"
[test node]
@@ -61,8 +63,18 @@
(teardown! [this test] this)))
+; ---- nemesis scenari ----
+
+(defn scenario-c
+ "Clock scramble scenario"
+ [opts]
+ {:generator (cycle [(gen/sleep 5)
+ {:type :info, :f :clock-scramble}])
+ :nemesis (nemesis/compose
+ {{:clock-scramble :scramble} (nemesis/clock-scrambler 20.0)})})
+
(defn scenario-cp
- "Clock scramble + parittion scenario"
+ "Clock scramble + partition scenario"
[opts]
{:generator (cycle [(gen/sleep 5)
{:type :info, :f :partition-start}
@@ -91,3 +103,23 @@
:nemesis (nemesis/compose
{{:reconfigure-start :start
:reconfigure-stop :stop} (reconfigure-subset 3)})})
+
+(defn scenario-pr
+ "Partition + cluster reconfiguration scenario"
+ [opts]
+ {:generator (cycle [(gen/sleep 3)
+ {:type :info, :f :reconfigure-start}
+ (gen/sleep 3)
+ {:type :info, :f :partition-start}
+ (gen/sleep 3)
+ {:type :info, :f :reconfigure-start}
+ (gen/sleep 3)
+ {:type :info, :f :partition-stop}
+ (gen/sleep 3)
+ {:type :info, :f :reconfigure-stop}])
+ :final-generator (gen/once {:type :info, :f :partition-stop})
+ :nemesis (nemesis/compose
+ {{:partition-start :start
+ :partition-stop :stop} (nemesis/partition-random-halves)
+ {:reconfigure-start :start
+ :reconfigure-stop :stop} (reconfigure-subset 3)})})
diff --git a/script/jepsen.garage/src/jepsen/garage/s3api.clj b/script/jepsen.garage/src/jepsen/garage/s3api.clj
index 4f292ac0..531e0157 100644
--- a/script/jepsen.garage/src/jepsen/garage/s3api.clj
+++ b/script/jepsen.garage/src/jepsen/garage/s3api.clj
@@ -39,12 +39,10 @@
new-object-summaries (:object-summaries list-result)
new-objects (map (fn [d] (:key d)) new-object-summaries)
objects (concat new-objects accum)]
- (info (:endpoint creds) "ListObjectsV2 prefix(" prefix "), ct(" ct "): " new-objects)
(if (:truncated? list-result)
(list-inner creds prefix (:next-continuation-token list-result) objects)
objects)))
(defn list
"Helper for ListObjects -- just lists everything in the bucket"
[creds prefix]
- (info "in s3/list creds:" creds ", prefix:" prefix)
(list-inner creds prefix nil []))
diff --git a/script/jepsen.garage/src/jepsen/garage/set.clj b/script/jepsen.garage/src/jepsen/garage/set.clj
index c5387462..f625e672 100644
--- a/script/jepsen.garage/src/jepsen/garage/set.clj
+++ b/script/jepsen.garage/src/jepsen/garage/set.clj
@@ -45,9 +45,7 @@
10000
(assoc op :type :fail, :error ::timeout)
(do
- (info "call s3/list creds: " (:creds this) ", prefix:" prefix)
(let [items (s3/list (:creds this) prefix)]
- (info "list results for prefix" prefix ":" items " (node:" (:endpoint (:creds this)) ")")
(let [items-stripped (map (fn [o]
(assert (str/starts-with? o prefix))
(str/replace-first o prefix "")) items)
@@ -115,8 +113,8 @@
{:client (SetClient. nil)
:checker (independent/checker
(checker/compose
- {:set-full (checker/set-full {:linearizable? false})
- :set-read-after-write (set-read-after-write)
+ {:set-read-after-write (set-read-after-write)
+ ; :set-full (checker/set-full {:linearizable? false})
:timeline (timeline/html)}))
:generator (independent/concurrent-generator
10