Hi! Sorry for the vague question, but it genuinely interests me.
All programs have bugs, but they must do useful work anyway.
Some programs can be simply restarted (
Other programs must work for a long time and not crash. The prime example is a threaded web server which continues to serve clients even if one of them sends some highly unusual and unexpected data
In Rust, good bugs are manifested as panics, and so my question is how do you make a panic not to crash your long running process? How do you install an isolation boundary?
The threaded server is an easy case, because a thread is a natural boundary. But I think that sometimes you want a more fine grained isolation. What would you do for a single threaded async server?
Another interesting example is a text editor. Some edit commands will cause index out of bounds panics. How these panics should be prevented from killing the whole editor?