Skip to content

Instantly share code, notes, and snippets.

@aphyr
Created April 18, 2014 08:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aphyr/11030573 to your computer and use it in GitHub Desktop.
Save aphyr/11030573 to your computer and use it in GitHub Desktop.
Etcd linearizability failure
Testing jepsen.system.etcd-test
INFO jepsen.os.debian - :n1 setting up debian
INFO jepsen.os.debian - :n3 setting up debian
INFO jepsen.os.debian - :n5 setting up debian
INFO jepsen.os.debian - :n2 setting up debian
INFO jepsen.os.debian - :n4 setting up debian
INFO jepsen.os.debian - :n5 debian set up
INFO jepsen.os.debian - :n4 debian set up
INFO jepsen.os.debian - :n1 debian set up
INFO jepsen.os.debian - :n3 debian set up
INFO jepsen.os.debian - :n2 debian set up
INFO jepsen.system.etcd - :n4 etcd nuked
INFO jepsen.system.etcd - :n5 etcd nuked
INFO jepsen.system.etcd - :n1 etcd nuked
INFO jepsen.system.etcd - :n3 etcd nuked
INFO jepsen.system.etcd - :n2 etcd nuked
INFO jepsen.system.etcd - Running nodes: {:n1 false, :n2 false, :n3 false, :n4 false, :n5 false}
INFO jepsen.system.etcd - :n4 etcd nuked
INFO jepsen.system.etcd - :n2 etcd nuked
INFO jepsen.system.etcd - :n1 etcd nuked
INFO jepsen.system.etcd - :n3 etcd nuked
INFO jepsen.system.etcd - :n5 etcd nuked
INFO jepsen.system.etcd - :n1 starting etcd
INFO jepsen.system.etcd - :n5 starting etcd
INFO jepsen.system.etcd - :n4 starting etcd
INFO jepsen.system.etcd - :n2 starting etcd
INFO jepsen.system.etcd - :n3 starting etcd
INFO jepsen.system.etcd - Running nodes: {:n1 true, :n2 true, :n3 true, :n4 true, :n5 true}
INFO jepsen.system.etcd - :n4 etcd ready
INFO jepsen.system.etcd - :n1 etcd ready
INFO jepsen.system.etcd - :n5 etcd ready
INFO jepsen.system.etcd - :n2 etcd ready
INFO jepsen.system.etcd - :n3 etcd ready
INFO jepsen.core - Worker 0 starting
INFO jepsen.core - Worker 3 starting
INFO jepsen.core - Worker 2 starting
INFO jepsen.core - Worker 4 starting
INFO jepsen.core - Worker 1 starting
; Read these histories as "Process 2 invoked a read (and didn't know what would come back)"
INFO jepsen.util - 2 :invoke :read nil
INFO jepsen.util - 4 :invoke :read nil
INFO jepsen.util - 0 :invoke :read nil
INFO jepsen.util - 1 :invoke :read nil
INFO jepsen.util - 3 :invoke :read nil
INFO jepsen.util - 0 :ok :read nil
INFO jepsen.util - 3 :ok :read nil
INFO jepsen.util - 4 :ok :read nil
; Process 2 completed its read OK, and found the value nil.
INFO jepsen.util - 2 :ok :read nil
INFO jepsen.util - 1 :ok :read nil
INFO jepsen.util - 0 :invoke :read nil
; process 3 invoked a CAS from 2 to 4
INFO jepsen.util - 3 :invoke :cas [2 4]
INFO jepsen.util - 4 :invoke :cas [4 4]
INFO jepsen.util - 2 :invoke :read nil
INFO jepsen.util - 1 :invoke :read nil
INFO jepsen.util - 0 :ok :read nil
INFO jepsen.util - 2 :ok :read nil
INFO jepsen.util - 1 :ok :read nil
INFO jepsen.util - 4 :fail :cas [4 4]
; process 3's CAS from 2 to 4 definitely did not take place
INFO jepsen.util - 3 :fail :cas [2 4]
INFO jepsen.util - 0 :invoke :read nil
INFO jepsen.util - 0 :ok :read nil
INFO jepsen.util - 2 :invoke :write 1
INFO jepsen.util - 1 :invoke :cas [2 3]
INFO jepsen.util - 2 :ok :write 1
INFO jepsen.util - 1 :fail :cas [2 3]
INFO jepsen.util - 4 :invoke :write 3
INFO jepsen.util - 3 :invoke :write 1
INFO jepsen.util - 4 :ok :write 3
INFO jepsen.util - 3 :ok :write 1
INFO jepsen.util - 0 :invoke :cas [4 1]
INFO jepsen.util - 2 :invoke :write 2
INFO jepsen.util - 1 :invoke :write 1
INFO jepsen.util - 0 :fail :cas [4 1]
INFO jepsen.util - 3 :invoke :read nil
INFO jepsen.util - 4 :invoke :write 0
INFO jepsen.util - 3 :ok :read 1
INFO jepsen.util - 2 :ok :write 2
INFO jepsen.util - 1 :ok :write 1
INFO jepsen.util - 4 :ok :write 0
INFO jepsen.util - :nemesis :info :start nil
INFO jepsen.util - 0 :invoke :write 4
INFO jepsen.util - 0 :ok :write 4
INFO jepsen.util - 3 :invoke :read nil
INFO jepsen.util - 3 :ok :read 4
INFO jepsen.util - 2 :invoke :cas [0 4]
INFO jepsen.util - 1 :invoke :read nil
INFO jepsen.util - 1 :ok :read 4
INFO jepsen.util - 4 :invoke :write 1
INFO jepsen.util - 2 :fail :cas [0 4]
INFO jepsen.util - 4 :ok :write 1
INFO jepsen.util - 0 :invoke :read nil
INFO jepsen.util - 0 :ok :read 1
INFO jepsen.util - 3 :invoke :read nil
INFO jepsen.util - 3 :ok :read 1
INFO jepsen.util - 1 :invoke :read nil
INFO jepsen.util - 1 :ok :read 1
INFO jepsen.util - :nemesis :info :start "Cut off {:n5 #{:n4 :n1}, :n2 #{:n4 :n1}, :n3 #{:n4 :n1}, :n1 #{:n3 :n2 :n5}, :n4 #{:n3 :n2 :n5}}"
INFO jepsen.util - 2 :invoke :cas [1 4]
INFO jepsen.util - 4 :invoke :read nil
INFO jepsen.util - 4 :ok :read 1
INFO jepsen.util - 2 :ok :cas [1 4]
INFO jepsen.util - 0 :invoke :read nil
INFO jepsen.util - 0 :ok :read 1
; Process 3 attempts a CAS from 0 to 1
INFO jepsen.util - 3 :invoke :cas [0 1]
INFO jepsen.util - 1 :invoke :write 3
INFO jepsen.util - 1 :ok :write 3
INFO jepsen.util - 4 :invoke :write 3
INFO jepsen.util - 2 :invoke :read nil
INFO jepsen.util - 2 :ok :read 3
INFO jepsen.util - 4 :ok :write 3
INFO jepsen.util - 0 :invoke :read nil
INFO jepsen.util - 0 :ok :read 1
; Process 3's CAS timed out; we don't know when, but that
; operation might or might not take place at time after its
; invocation.
INFO jepsen.util - 3 :info :cas :timed-out
INFO jepsen.util - 1 :invoke :write 3
INFO jepsen.util - 1 :ok :write 3
INFO jepsen.util - 2 :invoke :read nil
INFO jepsen.util - 2 :ok :read 3
INFO jepsen.util - 4 :invoke :cas [2 3]
INFO jepsen.util - 4 :fail :cas [2 3]
INFO jepsen.util - 0 :invoke :write 0
INFO jepsen.util - 8 :invoke :cas [1 2]
INFO jepsen.util - 1 :invoke :read nil
INFO jepsen.util - 1 :ok :read 3
INFO jepsen.util - 2 :invoke :write 2
INFO jepsen.util - 2 :ok :write 2
INFO jepsen.util - 4 :invoke :cas [2 3]
INFO jepsen.util - 0 :info :write :timed-out
INFO jepsen.util - 4 :ok :cas [2 3]
INFO jepsen.util - 8 :info :cas :timed-out
INFO jepsen.util - 1 :invoke :write 0
INFO jepsen.util - 1 :ok :write 0
INFO jepsen.util - 2 :invoke :cas [3 2]
INFO jepsen.util - 2 :fail :cas [3 2]
INFO jepsen.util - 5 :invoke :write 4
INFO jepsen.util - 4 :invoke :write 3
INFO jepsen.util - 13 :invoke :cas [0 3]
INFO jepsen.util - 4 :ok :write 3
INFO jepsen.util - :nemesis :info :stop nil
INFO jepsen.util - 1 :invoke :cas [4 3]
INFO jepsen.util - 1 :fail :cas [4 3]
INFO jepsen.util - 2 :invoke :cas [1 4]
INFO jepsen.util - 5 :info :write :timed-out
INFO jepsen.util - 2 :fail :cas [1 4]
INFO jepsen.util - 13 :info :cas :timed-out
INFO jepsen.util - 4 :invoke :write 2
INFO jepsen.util - 4 :ok :write 2
INFO jepsen.util - 1 :invoke :read nil
INFO jepsen.util - :nemesis :info :stop "fully connected"
INFO jepsen.util - 1 :ok :read 2
INFO jepsen.util - 10 :invoke :write 2
INFO jepsen.util - 2 :invoke :cas [0 0]
INFO jepsen.util - 18 :invoke :write 3
INFO jepsen.util - 10 :ok :write 2
INFO jepsen.util - 2 :fail :cas [0 0]
INFO jepsen.util - 18 :ok :write 3
INFO jepsen.util - 4 :invoke :read nil
INFO jepsen.util - 4 :ok :read 3
INFO jepsen.util - 1 :invoke :read nil
INFO jepsen.util - 1 :ok :read 3
INFO jepsen.util - 10 :invoke :cas [2 4]
INFO jepsen.util - 2 :invoke :write 0
INFO jepsen.util - 18 :invoke :cas [3 4]
INFO jepsen.util - 4 :invoke :cas [1 1]
INFO jepsen.util - 2 :ok :write 0
INFO jepsen.util - 10 :fail :cas [2 4]
INFO jepsen.util - 18 :fail :cas [3 4]
INFO jepsen.util - 4 :fail :cas [1 1]
INFO jepsen.util - 1 :invoke :cas [0 4]
INFO jepsen.util - 1 :ok :cas [0 4]
INFO jepsen.util - 2 :invoke :read nil
INFO jepsen.util - 2 :ok :read 4
INFO jepsen.util - 18 :invoke :read nil
INFO jepsen.util - 10 :invoke :cas [3 4]
INFO jepsen.util - 18 :ok :read 4
INFO jepsen.util - 4 :invoke :cas [2 0]
INFO jepsen.util - 1 :invoke :cas [4 2]
INFO jepsen.util - 10 :fail :cas [3 4]
INFO jepsen.util - 4 :fail :cas [2 0]
INFO jepsen.util - 1 :ok :cas [4 2]
INFO jepsen.util - 2 :invoke :read nil
INFO jepsen.util - 2 :ok :read 2
INFO jepsen.util - 18 :invoke :cas [4 0]
INFO jepsen.util - 18 :fail :cas [4 0]
INFO jepsen.util - 10 :invoke :write 0
INFO jepsen.util - 4 :invoke :write 0
INFO jepsen.util - 1 :invoke :write 1
INFO jepsen.util - 10 :ok :write 0
INFO jepsen.util - 4 :ok :write 0
INFO jepsen.util - 1 :ok :write 1
INFO jepsen.util - 2 :invoke :cas [0 2]
INFO jepsen.util - 2 :fail :cas [0 2]
INFO jepsen.util - :nemesis :info :start nil
INFO jepsen.util - 18 :invoke :cas [2 4]
INFO jepsen.util - 18 :fail :cas [2 4]
INFO jepsen.util - 10 :invoke :cas [0 0]
INFO jepsen.util - 4 :invoke :read nil
INFO jepsen.util - 1 :invoke :cas [1 1]
INFO jepsen.util - 10 :fail :cas [0 0]
INFO jepsen.util - 4 :ok :read 1
INFO jepsen.util - 1 :ok :cas [1 1]
INFO jepsen.util - 2 :invoke :read nil
INFO jepsen.util - 2 :ok :read 1
INFO jepsen.util - 18 :invoke :write 0
INFO jepsen.util - 18 :ok :write 0
INFO jepsen.util - 10 :invoke :write 0
INFO jepsen.util - 4 :invoke :cas [1 2]
INFO jepsen.util - 4 :info :cas {:status 500, :errorCode 300, :message "Raft Internal Error", :index 41}
INFO jepsen.util - 10 :ok :write 0
INFO jepsen.util - :nemesis :info :start "Cut off {:n1 #{:n2 :n5}, :n4 #{:n2 :n5}, :n3 #{:n2 :n5}, :n5 #{:n3 :n4 :n1}, :n2 #{:n3 :n4 :n1}}"
INFO jepsen.util - 1 :invoke :read nil
INFO jepsen.util - 2 :invoke :read nil
INFO jepsen.util - 2 :ok :read 0
INFO jepsen.util - 1 :fail :read :redirect-loop
INFO jepsen.util - 18 :invoke :write 2
INFO jepsen.util - 18 :ok :write 2
INFO jepsen.util - :nemesis :info :stop nil
INFO jepsen.util - :nemesis :info :stop "fully connected"
INFO jepsen.core - nemesis done
INFO jepsen.util - 18 :invoke :read nil
INFO jepsen.core - Worker 4 done
INFO jepsen.core - Worker 1 done
INFO jepsen.core - Worker 0 done
INFO jepsen.core - Worker 2 done
INFO jepsen.util - 18 :ok :read 2
INFO jepsen.core - Worker 3 done
INFO jepsen.core - Run complete, writing
INFO jepsen.core - Analyzing
INFO jepsen.core - Analysis complete
INFO jepsen.system.etcd - :n2 etcd nuked
INFO jepsen.system.etcd - :n1 etcd nuked
INFO jepsen.system.etcd - :n5 etcd nuked
INFO jepsen.system.etcd - :n4 etcd nuked
INFO jepsen.system.etcd - :n3 etcd nuked
FAIL in (register-test) (etcd_test.clj:45)
expected: (:valid? (:results test))
actual: false
Not linearizable. Linearizable prefix was:
2 :invoke :read nil
4 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
3 :invoke :read nil
0 :ok :read nil
3 :ok :read nil
4 :ok :read nil
2 :ok :read nil
1 :ok :read nil
0 :invoke :read nil
3 :invoke :cas [2 4]
4 :invoke :cas [4 4]
2 :invoke :read nil
1 :invoke :read nil
0 :ok :read nil
2 :ok :read nil
1 :ok :read nil
4 :fail :cas [4 4]
3 :fail :cas [2 4]
0 :invoke :read nil
0 :ok :read nil
2 :invoke :write 1
1 :invoke :cas [2 3]
2 :ok :write 1
1 :fail :cas [2 3]
4 :invoke :write 3
3 :invoke :write 1
4 :ok :write 3
3 :ok :write 1
0 :invoke :cas [4 1]
2 :invoke :write 2
1 :invoke :write 1
0 :fail :cas [4 1]
3 :invoke :read 1
4 :invoke :write 0
3 :ok :read 1
2 :ok :write 2
1 :ok :write 1
4 :ok :write 0
:nemesis :info :start nil
0 :invoke :write 4
0 :ok :write 4
3 :invoke :read 4
3 :ok :read 4
2 :invoke :cas [0 4]
1 :invoke :read 4
1 :ok :read 4
4 :invoke :write 1
2 :fail :cas [0 4]
4 :ok :write 1
0 :invoke :read 1
0 :ok :read 1
3 :invoke :read 1
3 :ok :read 1
1 :invoke :read 1
1 :ok :read 1
:nemesis :info :start "Cut off {:n5 #{:n4 :n1}, :n2 #{:n4 :n1}, :n3 #{:n4 :n1}, :n1 #{:n3 :n2 :n5}, :n4 #{:n3 :n2 :n5}}"
2 :invoke :cas [1 4]
4 :invoke :read 1
4 :ok :read 1
2 :ok :cas [1 4]
Followed by inconsistent operation:
0 :invoke :read 1
-------------------------------------------------------------
Just prior to that operation, possible interpretations of the
linearizable prefix were:
World with fixed history:
3 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
2 :invoke :read nil
4 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
3 :invoke :write 1
4 :invoke :write 3
2 :invoke :write 2
1 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
1 :invoke :read nil
4 :invoke :read nil
3 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
1 :invoke :write 1
2 :invoke :write 2
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
1 :invoke :read nil
3 :invoke :read nil
0 :invoke :read nil
4 :invoke :read nil
2 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
2 :invoke :write 2
1 :invoke :write 1
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
0 :invoke :read nil
1 :invoke :read nil
3 :invoke :read nil
4 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
3 :invoke :read 1
2 :invoke :write 2
4 :invoke :write 0
1 :invoke :write 1
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
2 :invoke :read nil
3 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
4 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
2 :invoke :write 2
4 :invoke :write 0
1 :invoke :write 1
3 :invoke :read 1
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
0 :invoke :read nil
3 :invoke :read nil
1 :invoke :read nil
4 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
1 :invoke :write 1
3 :invoke :read 1
2 :invoke :write 2
4 :invoke :write 0
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
3 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
4 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
3 :invoke :write 1
4 :invoke :write 3
4 :invoke :write 0
2 :invoke :write 2
1 :invoke :write 1
3 :invoke :read 1
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
4 :invoke :read nil
3 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
4 :invoke :write 0
2 :invoke :write 2
1 :invoke :write 1
3 :invoke :read 1
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
1 :invoke :read nil
0 :invoke :read nil
4 :invoke :read nil
2 :invoke :read nil
3 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
2 :invoke :write 2
1 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
1 :invoke :read nil
3 :invoke :read nil
4 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
1 :invoke :write 1
3 :invoke :read 1
2 :invoke :write 2
4 :invoke :write 0
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
1 :invoke :read nil
3 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
4 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
3 :invoke :write 1
4 :invoke :write 3
4 :invoke :write 0
1 :invoke :write 1
3 :invoke :read 1
2 :invoke :write 2
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
3 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
4 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
3 :invoke :write 1
4 :invoke :write 3
2 :invoke :write 2
4 :invoke :write 0
1 :invoke :write 1
3 :invoke :read 1
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
2 :invoke :read nil
4 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
3 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
2 :invoke :write 2
1 :invoke :write 1
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
3 :invoke :read nil
1 :invoke :read nil
4 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
1 :invoke :write 1
2 :invoke :write 2
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
1 :invoke :read nil
3 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
4 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
2 :invoke :write 2
1 :invoke :write 1
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
4 :invoke :read nil
0 :invoke :read nil
3 :invoke :read nil
1 :invoke :read nil
2 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
1 :invoke :write 1
3 :invoke :read 1
2 :invoke :write 2
4 :invoke :write 0
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
0 :invoke :read nil
3 :invoke :read nil
2 :invoke :read nil
4 :invoke :read nil
1 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
3 :invoke :read 1
1 :invoke :write 1
2 :invoke :write 2
4 :invoke :write 0
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
0 :invoke :read nil
3 :invoke :read nil
4 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
1 :invoke :write 1
2 :invoke :write 2
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
4 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
3 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
1 :invoke :write 1
2 :invoke :write 2
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
2 :invoke :read nil
0 :invoke :read nil
3 :invoke :read nil
1 :invoke :read nil
4 :invoke :read nil
1 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
2 :invoke :write 2
1 :invoke :write 1
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
3 :invoke :read nil
4 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
2 :invoke :write 2
1 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
4 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
3 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
3 :invoke :write 1
4 :invoke :write 3
1 :invoke :write 1
3 :invoke :read 1
2 :invoke :write 2
4 :invoke :write 0
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
3 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
4 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
3 :invoke :write 1
4 :invoke :write 3
1 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
2 :invoke :write 2
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
2 :invoke :read nil
1 :invoke :read nil
4 :invoke :read nil
0 :invoke :read nil
3 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
3 :invoke :write 1
4 :invoke :write 3
1 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
2 :invoke :write 2
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
3 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
4 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
3 :invoke :write 1
4 :invoke :write 3
4 :invoke :write 0
2 :invoke :write 2
1 :invoke :write 1
3 :invoke :read 1
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
4 :invoke :read nil
3 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
3 :invoke :read 1
1 :invoke :write 1
4 :invoke :write 0
2 :invoke :write 2
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
3 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
4 :invoke :read nil
1 :invoke :read nil
1 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
3 :invoke :write 1
4 :invoke :write 3
1 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
2 :invoke :write 2
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
2 :invoke :read nil
1 :invoke :read nil
3 :invoke :read nil
0 :invoke :read nil
4 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
3 :invoke :read 1
1 :invoke :write 1
2 :invoke :write 2
4 :invoke :write 0
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
2 :invoke :read nil
3 :invoke :read nil
1 :invoke :read nil
4 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
3 :invoke :write 1
4 :invoke :write 3
1 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
2 :invoke :write 2
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
2 :invoke :read nil
0 :invoke :read nil
3 :invoke :read nil
4 :invoke :read nil
1 :invoke :read nil
1 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
4 :invoke :write 0
1 :invoke :write 1
3 :invoke :read 1
2 :invoke :write 2
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
3 :invoke :read nil
4 :invoke :read nil
1 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
1 :invoke :read nil
2 :invoke :read nil
0 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
2 :invoke :write 2
4 :invoke :write 0
1 :invoke :write 1
3 :invoke :read 1
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
World with fixed history:
1 :invoke :read nil
3 :invoke :read nil
2 :invoke :read nil
4 :invoke :read nil
0 :invoke :read nil
2 :invoke :read nil
1 :invoke :read nil
0 :invoke :read nil
0 :invoke :read nil
2 :invoke :write 1
4 :invoke :write 3
3 :invoke :write 1
3 :invoke :read 1
4 :invoke :write 0
1 :invoke :write 1
2 :invoke :write 2
0 :invoke :write 4
3 :invoke :read 4
1 :invoke :read 4
4 :invoke :write 1
0 :invoke :read 1
3 :invoke :read 1
1 :invoke :read 1
4 :invoke :read 1
2 :invoke :cas [1 4]
led to state:
{:value 4}
with pending operations:
(and 12928 more worlds, elided here
--------------------------------------------------------------
Inconsistent state transitions:
([{:value 4} "can't read 1 from register 4"])
Ran 1 tests containing 1 assertions.
1 failures, 0 errors.
Reloading jepsen.report ... done.
Reloading jepsen.report-test ... failed.
No test namespace jepsen.report-test - doing nothing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment