Open qvad opened 1 year ago
The release notes for 0.3.0 talk about this--it's likely the code in question is passing in a vector rather than a jepsen.history.History
.
@aphyr why does checker/linearizable
works then, shouldn't it use same input objects?
linearizable model code hasn't changed during upgrade in my code.
Without knowing the caller it's tough for me to say!On Dec 16, 2022 16:40, Dmitry Sherstobitov @.***> wrote: @aphyr why does checker/linearizable works then, shouldn't it use same input objects? linearizable model code hasn't changed during upgrade.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>
@aphyr, sorry, I'm still noob in Clojure and Jepsen :)
What do you mean by caller? As far as I understood there is no need to change client implementation, generator also should be ok. Also all other test works fine with timeline/html
so problem is somewhere in this test, but I don't understand where to search.
:sz.multi-key-acid (with-client multi-key-acid/workload (yugabyte.ysql.multi-key-acid/->YSQLMultiKeyAcidClient))
(defn workload
[opts]
(let [threads (:concurrency opts)]
{:generator (ygen/with-op-index
(independent/concurrent-generator
(/ threads 2)
(range)
(fn [k]
(->> (gen/reserve (/ threads 4) r w)
(gen/stagger 1)
(gen/process-limit threads)))))
:checker (independent/checker
(checker/compose
{:timeline (timeline/html)
:linear (checker/linearizable
{:model (multi-register {})})}))}))
I mean the code that's calling timeline/html's checker--it's not in the stacktrace you posted because we run those evaluations concurrently. This helps! I think it's a bug in independent/checker. I'm running out the door for a long drive here so I don't have time to write a full test, but I've made a quick patch in the main branch of Jepsen that might help. Give that a shot?
Got it, thank you!
I've tried new independent
code and it works.
Recently I've updated Jepsen to 0.3.0 and started to observe this exception in tests that are using timeline/html checker.
Workaround is to use old timeline/html code.