I should probably be less scared and share more about ideas I have. Thinking of writing a module that allows injecting deterministically random delays inside methods. Similar to how pingcap's `fail` module allows injecting faults. Should be useful to detect data ordering bugs!
-
-
Replying to @yoshuawuyts
This lil puppy has caught more race conditions than anything else I've tried in sled https://github.com/spacejam/sled/blob/f445e322f9069208326a2b35f301f29a8b7d340b/crates/pagecache/src/debug_delay.rs …
1 reply 1 retweet 6 likes -
Replying to @sadisticsystems @yoshuawuyts
determinism here requires all threads get serialized by a scheduler though, limiting concurrency and destroying the correspondence of at-test barriers to what will happen at runtime. this is one area I lean more into nondeterministic testing to get more coverage w/ my cpu budget
1 reply 0 retweets 1 like -
Replying to @sadisticsystems @yoshuawuyts
you can use tricks like partial bounded order reduction or maximal causality reduction (w/ z3 or something) to dramatically reduce test cases for the scheduled deterministic approach. maybe I'll build this after sled :]
2 replies 0 retweets 1 like -
Replying to @sadisticsystems @yoshuawuyts
it's a pretty high investment to get maximal causality reduction, but it is really important if we're going to exhaustively test nontrivial concurrent implementations http://compilers.cs.ucla.edu/njr/workshop/ase17/jeff-huang-slides.pdf …
1 reply 1 retweet 1 like
Ohh, thanks for the share. Skimming over it and that seems really cool!!
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.