jepsen-io / elle

Black-box transactional safety checker based on cycle detection
Eclipse Public License 2.0
640 stars 34 forks source link

Elle checks :fail results? #5

Closed yito88 closed 4 years ago

yito88 commented 4 years ago

I'm working on a test with Elle to verify serializable transactions. I have a question about checking anomalies.

Does Elle check the anomalies with :fail results? I tried Elle via Jepsen (jepsen.tests.cycle.append/test), but I had anomalies for :fail results. I'd like to ignore these :fail results for checking anomalies.

{:clock {:valid? true},
 :stats
 {:valid? true,
  :count 1504,
  :ok-count 318,
  :fail-count 1184,
  :info-count 2,
  :by-f
  {:txn
   {:valid? true,
    :count 1504,
    :ok-count 318,
    :fail-count 1184,
    :info-count 2}}},
 :exceptions {:valid? true},
 :workload
 {:valid? false,
  :anomaly-types (:G1a :G1b :dirty-update),
  :anomalies
  {:G1a
   ({:op
     {:type :ok,
      :f :txn,
      :value [[:r 18 [1]] [:r 17 [3]] [:append 6 10] [:append 17 9]],
      :time 24868956077,
      :process 0,
      :index 101},
     :mop [:r 18 [1]],
     :writer
     {:type :fail,
      :f :txn,
      :value
      [[:append 14 6]
       [:append 18 1]
       [:r 17 nil]
       [:r 17 nil]
       [:r 17 nil]
       [:append 14 7]
       [:append 18 2]],
      :time 24441252230,
      :process 1,
      :error [:crud-error "rollback is toward non-prepared record"],
      :index 91},
     :element 1}
...
yito88 commented 4 years ago

I've reposted this to https://github.com/jepsen-io/jepsen/issues/489