jepsen-io / knossos

Verifies the linearizability of experimentally accessible histories.
398 stars 31 forks source link

Support histories with external indices and use to link linear.svg to timeline.html #19

Closed mkcp closed 6 years ago

mkcp commented 6 years ago

Both knossos.linear and knossos.wgl render debugging output with the same ops' indices as they are passed in. I also updated linear to return plain maps, same as WGL, and added some cases from WGL to linear-test.

One change that I'm suspect of is that I needed to add a check for :index nil in knossos.linear/step so that report-test would stop NullPointerExceptioning. As far as I can tell this doesn't change the behavior for linear outside of report, so I'm puzzled as to why this is happening. https://github.com/jepsen-io/knossos/compare/master...mkcp:support-jepsen-indices?expand=1#diff-8f4c4f892cd240e9882c1d2b666c1a35R211

aphyr commented 6 years ago

Oh yeah, that nil index thing is definitely worrying. We assign indices to ALL ops in the history, right? How did it get one without... an index?

Might be worth sprinkling some (assert (:index op)) through that checker to see if you can trace it back to the source?

mkcp commented 6 years ago

I expected this to be done, but for some reason all of the knossos.report-tests are passing while it's failing to generate any linear.svg against etcd. Need a bit more time to figure this out