-
Notifications
You must be signed in to change notification settings - Fork 189
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
txn-list-append
workload fails to detect invalid return for read operations
#14
Comments
Ah, yeah, this is somewhere we could do more rigorous checking. As far as Jepsen and Elle are concerned your histories were, in fact, correct: append-only histories are always legal, and your system insisted that the transactions it executed were append-only! This generally doesn't come up in Jepsen testing because we control the transaction generation, but in Maelstrom we're blindly trusting whatever the node happens to return, and that's clearly not correct. I'd welcome a patch to either Maelstrom or Elle which validates that completion transactions are compatible with their invocations! |
Thanks for clarifying, I had a rough understanding of this history concept. I'm not entirely sure what should be considered as "compatible" though - does each µ-op must return in same order? or does it allow reordering but each µ-op need to present? or does it allow multiple µ-op to map to a single one in request? (e.g. multiple read response for a single read request) For example for this input
(I haven't finished the entire Datomic chapter so might be a dumb question) |
Only option 1 is valid there. You want precise equality *except* for read values, which should be null in the invoke. :-)
|
BTW I opened a PR ^ for this in case you missed it :D |
I had a typo in my code which caused all
txn_ok
response to use"append"
for all functions. Such as this:However in this case
maelstrom
considers the run valid:I noticed this when I tried a multi-node test when only finished the single node part, so found it weird that I can successfully pass the test. When I fix my typo it now correctly identifies my single node code to fail for multi node test.
It seems this is a deeper issue in Jepsen/Elle? (or intended behaviour?)
The text was updated successfully, but these errors were encountered: