Jepsen testing (NLnet task 3 subtask 1) #544

Merged
lx merged 41 commits from jepsen into main 2024-01-11 10:52:13 +00:00
Owner
  • Connect Garage and Jepsen : cluster configuration, layout creation, S3 get/put/delete requests

  • Verify GetObject/PutObject register properties

    • test reg : GetObject/PutObject does NOT act as a linearizable register, for at least the following two reasons:

      • timestamps were not strictly increasing (fixed in #543, not sure we want to merge?)
      • reads are not monotonic (will not fix)
    • Create a consistency model and a checker that correctly models the valid states for GetObject/PutObject, check if #543 changes something or not

  • Verify PutObject/ListObjects set properties

    • test set1 : Jepsen's set test : items are written, time passes, a read occurs, the read contains all written items, check passes

    • test set2 : Jepsen's set-full test, check fails with linearizability contrainst, passes without

    • test set2 : custom checker for read-after-write in sets, check passes

  • Introduce layout changes and check that things break (#495)

  • Fix #495, validate fix

Left for future work:

  • Testing of K2V operations
- [x] Connect Garage and Jepsen : cluster configuration, layout creation, S3 get/put/delete requests - Verify GetObject/PutObject register properties - [x] test `reg` : GetObject/PutObject does NOT act as a linearizable register, for at least the following two reasons: - timestamps were not strictly increasing (fixed in #543, not sure we want to merge?) - reads are not monotonic (will not fix) - [x] Create a consistency model and a checker that correctly models the valid states for GetObject/PutObject, check if #543 changes something or not - Verify PutObject/ListObjects set properties - [x] test `set1` : Jepsen's `set` test : items are written, time passes, a read occurs, the read contains all written items, check passes - [x] test `set2` : Jepsen's `set-full` test, check fails with linearizability contrainst, passes without - [x] test `set2` : custom checker for read-after-write in sets, check passes - [x] Introduce layout changes and check that things break (#495) - [x] Fix #495, validate fix - Final results: [BEFORE PATCH](https://git.deuxfleurs.fr/Deuxfleurs/garage/src/commit/fa9247f11b89c960dffe82d6bf990ed4335788e3/script/jepsen.garage/results/Results-2023-12-13-tsfix2.png), [AFTER PATCH](https://git.deuxfleurs.fr/Deuxfleurs/garage/src/commit/fa9247f11b89c960dffe82d6bf990ed4335788e3/script/jepsen.garage/results/Results-2023-12-13-task3c.png) - [Notes on Jepsen testing](https://git.deuxfleurs.fr/Deuxfleurs/garage/src/commit/fa9247f11b89c960dffe82d6bf990ed4335788e3/script/jepsen.garage/README.md) Left for future work: - Testing of K2V operations
lx added 7 commits 2023-04-19 10:52:10 +00:00
better match exceptions
All checks were successful
continuous-integration/drone/push Build is passing
ab736be9f0
even without nemesis, s3 get/put/delete is not linearizable (is this normal?)
All checks were successful
continuous-integration/drone/push Build is passing
7d0523883a
the fix for increasing timestamps does not make things linearizable
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
cc5a677bac
lx force-pushed jepsen from b633033164 to ce1cb543e8 2023-04-19 10:57:28 +00:00 Compare
lx added 1 commit 2023-04-19 12:14:32 +00:00
refactor jepsen test
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
e95e2e0dfe
lx added 1 commit 2023-04-19 13:27:37 +00:00
Add garage set test (this one works :p)
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2b70fe47e2
lx added 2 commits 2023-04-19 14:16:46 +00:00
set tests with independant tests together
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
70f042131f
lx added 1 commit 2023-04-19 20:02:15 +00:00
Check read-after-write property for sets
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
a549122acd
lx added 1 commit 2023-04-19 20:17:27 +00:00
reformatting
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
6dcb9d31ff
lx added the
kind
correctness
label 2023-06-05 10:16:38 +00:00
lx added this to the v1.0 milestone 2023-06-14 12:23:44 +00:00
lx force-pushed jepsen from 6dcb9d31ff to 9003883e64 2023-10-18 10:00:54 +00:00 Compare
lx force-pushed jepsen from 9003883e64 to 9ec4cca334 2023-10-18 10:03:20 +00:00 Compare
lx added 1 commit 2023-10-18 12:01:29 +00:00
jepsen: update to garage 0.9.0
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
ef5ca86dfc
lx added 2 commits 2023-10-18 13:34:23 +00:00
refactor jepsen setup logic
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
84d43501ce
lx added 1 commit 2023-10-18 14:30:53 +00:00
refactor jepsen code
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
ddd3de7fce
lx added 1 commit 2023-10-18 15:51:54 +00:00
make jepsen test more robust: handle errors and timeouts, fixed access key
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
b3bf16ee27
lx added 2 commits 2023-10-19 14:45:38 +00:00
jepsen: investigating listobjects error
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
da8b170748
lx added 1 commit 2023-10-19 21:41:10 +00:00
jepsen: fix the list-objects call (?)
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
ef662822c9
lx added 1 commit 2023-10-20 10:13:27 +00:00
jepsen: wip checker for register-like behavior
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
4ba18ce9cc
lx added 1 commit 2023-10-20 10:57:07 +00:00
jepsen: errors in reg2 workload under investigation
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
4b93ce179a
lx added 1 commit 2023-10-20 11:37:07 +00:00
jepsen: reg2 failure seems to happen only with deleteobject
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
d148b83d4f
lx added 1 commit 2023-10-20 13:00:26 +00:00
jepsen: register crdt read-after-write is fixed with deleteobject patch
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
f5b0972781
lx added 1 commit 2023-10-20 13:48:51 +00:00
jepsen: add cluster reconfiguration nemesis
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
654775308e
lx added 1 commit 2023-10-20 13:53:57 +00:00
jepsen: code path for nemesis final generator
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
9030c1eef8
lx added 1 commit 2023-10-20 13:55:17 +00:00
jepsen: update readme
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
fb6c9a1243
lx added 1 commit 2023-10-24 09:40:01 +00:00
jepsen: more testing
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
d2c365767b
lx added 1 commit 2023-10-24 13:44:18 +00:00
jepsen: set1 and set2 don't fail anymore ??
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
d13bde5e26
lx added 1 commit 2023-10-24 14:40:03 +00:00
jepsen: fix nemesis to actually generate many operations
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
d7ab2c639e
lx added 1 commit 2023-10-24 15:45:34 +00:00
jepsen: got a failure with set1
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
4fa2646a75
lx added 3 commits 2023-10-25 10:13:42 +00:00
jepsen: failures with set2 test in --scenario r
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
fd85010a40
lx added 1 commit 2023-10-25 12:05:06 +00:00
jepsen: use 7 nodes
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
9df7fa0bcd
lx added 1 commit 2023-10-25 12:43:34 +00:00
jepsen: testing
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
5b1f50be65
lx added 1 commit 2023-11-16 11:57:45 +00:00
jepsen: add patch and use more complete names
Some checks failed
continuous-integration/drone/pr Build is failing
continuous-integration/drone/push Build is passing
18e5811159
lx changed title from WIP: Jepsen testing to WIP: Jepsen testing (NLnet task 3 subtask 1) 2023-11-16 15:43:28 +00:00
lx added 1 commit 2023-11-16 17:09:28 +00:00
jepsen: nlnet task3a seems to fix things
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
92dd2bbe15
lx added 1 commit 2023-12-14 15:24:07 +00:00
jepsen: updated results, confirming that task3 works
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
fa9247f11b
lx changed title from WIP: Jepsen testing (NLnet task 3 subtask 1) to Jepsen testing (NLnet task 3 subtask 1) 2024-01-11 10:51:56 +00:00
lx merged commit 723e56b37f into main 2024-01-11 10:52:13 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Deuxfleurs/garage#544
No description provided.