Live data from Hacker News

So you think you want to write a deterministic hypervisor?

antithesis.com

11–20 of 56 posts

Re: So you think you want to write a deterministic hypervisor?

#11
This is for a distributed database product that claims to bypass the CAP theorem or have I misunderstood?

> Back then Spanner wasn’t public yet and a lot of people misinterpreted the CAP theorem to say that a strongly consistent database couldn’t also be highly available in the face of network faults.

- https://antithesis.com/blog/is_something_bugging_you/

Re: So you think you want to write a deterministic hypervisor?

#12
post #11

This is for a distributed database product that claims to bypass the CAP theorem or have I misunderstood? > Back then Spanner wasn’t public yet and a lot of people misinterpreted the CAP theorem to say that a strongly consistent database couldn’t also be highly available in the face of network faults. - https://antithesis.com/blog/is_something_bugging_you/

A lot of us worked at FoundationDB, but this is a new company (Antithesis) which develops autonomous testing and debugging tools.

Re: So you think you want to write a deterministic hypervisor?

#13
What a tease! They describe in detail two problems they had to “invent workarounds” for, but say nothing about what the workarounds are. I’m very curious, since both of the problems sound quite hard to work around. I wonder if they’re being purposefully vague to make it harder for competitors to replicate their work…

Re: So you think you want to write a deterministic hypervisor?

#14
post #11

This is for a distributed database product that claims to bypass the CAP theorem or have I misunderstood? > Back then Spanner wasn’t public yet and a lot of people misinterpreted the CAP theorem to say that a strongly consistent database couldn’t also be highly available in the face of network faults. - https://antithesis.com/blog/is_something_bugging_you/

Probably referring to:

https://cloud.google.com/blog/products/databases/inside-clou...

https://apple.github.io/foundationdb/cap-theorem.html

Re: So you think you want to write a deterministic hypervisor?

#15
post #12
post #11

This is for a distributed database product that claims to bypass the CAP theorem or have I misunderstood? > Back then Spanner wasn’t public yet and a lot of people misinterpreted the CAP theorem to say that a strongly consistent database couldn’t also be highly available in the face of network faults. - https://antithesis.com/blog/is_something_bugging_you/

A lot of us worked at FoundationDB, but this is a new company (Antithesis) which develops autonomous testing and debugging tools.

By the way, that's one cool-looking cybernetic ant-eater. Is that what an ant-ithesis supposed to look like?

Re: So you think you want to write a deterministic hypervisor?

#16
post #12

Earlier quoted context omitted.

A lot of us worked at FoundationDB, but this is a new company (Antithesis) which develops autonomous testing and debugging tools.

By the way, that's one cool-looking cybernetic ant-eater. Is that what an ant-ithesis supposed to look like?

Thank you :) anteater is Antithesis mascot but this cyber version of it the only illustration I could come up with for the Determinator. There were other much more creepy versions :)

Re: So you think you want to write a deterministic hypervisor?

#17
How does this deal with non-determinism from the outside world? For example, let's say one of my tests is flaky because it asks an external service to give it some data, and that external service is flaky in what it returns?

Or what if my bug is caused by bitflips in failing memory, that lead to impossible control flow paths being hit? Think something like:

    if x != 0:
        return 1/x
Failing with an error because x is 0.

Not hypothetical scenarios, both real bugs I've had to troubleshoot in my career.

Re: So you think you want to write a deterministic hypervisor?

#18
post #8

We do something similar in house where I work. Is it hard to onboard new customers? Since they make a special container for you they basically adopt your build system, which may be hard for them. Does this go beyond mutation testing?

With most of our customers, they don't actually have to change their build system at all. We take their normal CI products, plus a small amount of special configuration, and run them. This is actually a good thing because we're testing something very similar to what runs in production. The kinds of state space exploration we do are a lot more general than mutation testing. Our current product does exploration by (1)…

Thanks! Where does the "want" come from to compare your "got"s to? If the customer code handles errors gracefully, can you still surface undesirable behavior?

Re: So you think you want to write a deterministic hypervisor?

#19
post #17

How does this deal with non-determinism from the outside world? For example, let's say one of my tests is flaky because it asks an external service to give it some data, and that external service is flaky in what it returns? Or what if my bug is caused by bitflips in failing memory, that lead to impossible control flow paths being hit? Think something like: if x != 0: return 1/x Failing with an error because x is 0.…

Bitflips are an interesting form of fault-injection that we could add:

https://antithesis.com/docs/applications/reliability/fault_i...

If you know somebody who will pay money for us to prioritize this feature, let me know! Otherwise, I'm sure we'll get to it eventually. We have all kinds of crazy ideas for new faults.

Communication with the outside world is something that we obviously have to ban. This means that all of the inputs to your system are being provided by our platform, and that any dependencies have to be mocked, or run inside the hypervisor with you.

In practice this can cause friction for people with a ton of dependencies. Some of the most common things we've already mocked (for example we have an entire fake AWS that we can run in there with you), and if your dependency is one of our existing customers, we can probably work something out...

Re: So you think you want to write a deterministic hypervisor?

#20
post #8

Earlier quoted context omitted.

With most of our customers, they don't actually have to change their build system at all. We take their normal CI products, plus a small amount of special configuration, and run them. This is actually a good thing because we're testing something very similar to what runs in production. The kinds of state space exploration we do are a lot more general than mutation testing. Our current product does exploration by (1)…

Thanks! Where does the "want" come from to compare your "got"s to? If the customer code handles errors gracefully, can you still surface undesirable behavior?

We provide a bunch of different ways for you to express your test properties. (1) A lot of stuff we can detect automatically, like crashes, OOMs, etc. (2) You should turn on assertions in all the code you send to us. (3) We can write generalized temporal regexes against your log messages or other output. (4) We offer SDKs that allow you to declare test properties inline in your code. (5) We can integrate with off-the-shelf sanitizers like ASAN, the Go race detector, etc.
Post reply on HN