Live data from Hacker News

Debugging in the Multiverse

antithesis.com

21–30 of 62 posts

Re: Debugging in the Multiverse

#21
post #13

Does anything like the Antithesis hypervisor exist as open source? The closest I've seen is Qemu record/replay, but that's very slow (no KVM acceleration, no multicore), and broken in current Qemu versions (replayed system just gets stuck).

https://github.com/facebookexperimental/hermit but it hasn't worked for me and is now unmaintained.

Re: Debugging in the Multiverse

#22
Pretty much no software, even when run deterministically, is bijective. There are almost always cases where two different states map to the same state.

How does this tooling deal with that?

Re: Debugging in the Multiverse

#23
post #22

Pretty much no software, even when run deterministically, is bijective. There are almost always cases where two different states map to the same state. How does this tooling deal with that?

This makes the mapping "injective": https://antithesis.com/blog/deterministic_hypervisor/

The "onto" direction doesn't really matter.

Re: Debugging in the Multiverse

#25
post #13

Does anything like the Antithesis hypervisor exist as open source? The closest I've seen is Qemu record/replay, but that's very slow (no KVM acceleration, no multicore), and broken in current Qemu versions (replayed system just gets stuck).

There's languages that support time travel debugging, like RR for GDB, or smalltalk, but no open source system wide thing like Antithesis that I know of yet.

rr can record process trees; i.e. basically any part/descendant of a process you spawn will be recorded and can be replayed (userspace CPU & memory, that is); won't record the entire OS though.

Re: Debugging in the Multiverse

#26
post #23
post #22

Pretty much no software, even when run deterministically, is bijective. There are almost always cases where two different states map to the same state. How does this tooling deal with that?

This makes the mapping "injective": https://antithesis.com/blog/deterministic_hypervisor/ The "onto" direction doesn't really matter.

How can it reverse time? Does it record a stack of every decision point?

Re: Debugging in the Multiverse

#27
post #26
post #23

Earlier quoted context omitted.

This makes the mapping "injective": https://antithesis.com/blog/deterministic_hypervisor/ The "onto" direction doesn't really matter.

How can it reverse time? Does it record a stack of every decision point?

You don’t need to reverse time if you can deterministically reproduce everything that led up to the point of interest. (In practice we save a snapshot of your system at some intermediate point and replay from there.)

Re: Debugging in the Multiverse

#29
I've enjoyed reading many of the blog posts by Antithesis, really cool work.

I don't really see a fit for the automated testing product in our stack at the moment, but I would love to use a time traveling hypervisor that I can hop into whenever I'd like.

Currently, it seems your pricing is pretty focused on the automated testing service. Do you have pricing or plans that offer just the deterministic dev environment?

Re: Debugging in the Multiverse

#30
post #12
post #7

Earlier quoted context omitted.

Yes, unfortunately we have not figured out how to rewind time in the real world yet. When we do, there are a lot of choices I'm going to revisit...

... but the intro makes it sound like this system is valuable in investigating bugs that occurred in prod systems: > I’ve been involved in too many production outages and emergencies whose aftermath felt just like that. Eventually all the alerts and alarms get resolved and the error rates creep back down. And then what? Cordon the servers off with yellow police tape? The bug that caused the outage is there in your co…

This was my thinking as well. Prod environments can be extremely complicated and issues often come down to specific configuration or data issues in production. So I had a lot of trouble understanding how the premise is connected to the product here.
Post reply on HN