-
Notifications
You must be signed in to change notification settings - Fork 718
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Jepsen seems to have given the wrong answer. #596
Comments
[org.clojure/clojure "1.9.0"] Looking forward to your reply. If you need any further information, I am more than happy to provide it |
That write failed. Reading it is an instance of aborted read, which violates read committed.
|
Perhaps I didn't tell Jepsen that this was a timeout request? This is my code, how should I modify it? (defrecord Client [conn]
client/Client
(open! [this test node]
(-> this
(assoc :conn (create-client node))))
(setup! [this test])
(invoke! [this test op]
(try
(case (:f op)
:read (assoc op :type :ok, :value (read this))
:write (do
(write this (:value op))
(assoc op :type :ok)))
(catch Exception e
(let [^String msg (.getMessage e)]
(cond
(and msg (.contains msg "UNKNOWN")) (assoc op :type :fail, :error :timeout)
:else
(assoc op :type :fail :error (.getMessage e)))))))
(teardown! [this test])
(close! [_ test]))
|
See https://github.com/jepsen-io/history; you want to record indeterminate failures as type :info, not :fail. |
hi jepsen team.
I think the part in the red box satisfies linear consistency, but Jepsen seems to have given the wrong answer.
Jepsen's answer seems to overlook the
Wirte 638
operation of node 1The text was updated successfully, but these errors were encountered: