[HN Gopher] Deterministic simulation testing for async Rust
___________________________________________________________________
Deterministic simulation testing for async Rust
Author : shikhar
Score : 83 points
Date : 2025-04-04 13:17 UTC (3 days ago)
(HTM) web link (s2.dev)
(TXT) w3m dump (s2.dev)
| TeamDman wrote:
| Neat! Must be very satisfying for this to be working now. I
| wonder if it's feasible to get it working on a multi threaded
| runtime
| mesto1 wrote:
| I know it was mentioned at the end, I was curious what are some
| of the notable issues that were find using the DST approach, and
| how did it benefit the development of the system? I would also be
| curious if a LLM system would be able to help analyze the TRACE
| logs ?
| sensodine wrote:
| (I work at S2.)
|
| > what are some of the notable issues that were find using the
| DST approach
|
| We've discovered a few distributed deadlocks. And in general
| it's been incredibly helpful in exercising any parts of the
| system that involve caches or eventual consistency, as these
| can be really hard to reason about otherwise.
|
| > if a LLM system would be able to help analyze the TRACE logs
|
| Neat idea! For us, the logs are typically being dug into only
| if there is a failure condition for the test as a whole. Often
| times we'll inject additional logging or state monitoring to
| better understand what led to the failure (which is easy enough
| to do given the reproducibility of the failure in the sim).
| Trace logs are also being analyzed in the context of the "meta-
| test", but that's just looking for identical outputs. (More
| about that here: https://github.com/tokio-
| rs/turmoil/issues/19#issuecomment-2... )
| tga_d wrote:
| What's the advantage of integrating this at a library level
| instead of just compiling it and running in Shadow?
| https://github.com/shadow/shadow
| a_t48 wrote:
| This is great work - one of the rules for code written with Basis
| was not to use the system clock. I somewhat got around the
| network determinism by shimming out all network calls, and rather
| than going single threaded, writing a scheduler
| (https://basisrobotics.tech/2024/09/02/determinism/). My goal
| wasn't to get ci->dev machine determinism, at least immediately,
| because callback ordering determinism was so important. Love
| seeing other work done in this space.
___________________________________________________________________
(page generated 2025-04-07 23:01 UTC)