An Ubuntu kernel bug causes container crashes
An Ubuntu kernel bug causes container crashes
Posted Jul 6, 2022 17:39 UTC (Wed) by NYKevin (subscriber, #129325)In reply to: An Ubuntu kernel bug causes container crashes by developer122
Parent article: An Ubuntu kernel bug causes container crashes
You can't do this without either using an incredibly strict language or an incredibly broad definition of "breakage." Any time code interacts with state, the state is subject to some set of invariants (e.g. "when foo() returns -1, errno can take on these values..."). Most languages explicitly encode only a small subset of those invariants in their type systems, and leave everything else for comments and documentation. Even languages like SQL, where most invariants are encoded as constraints, still have business logic invariants (e.g. "the value in the price column is the real-world price of the item, excluding tax"), which usually cannot be expressed or checked by a type checker (sure, you can check for negative or zero price, but you can't check for "the price is too expensive for this item, because somebody changed the price column to include tax"). So you have to use a broad definition of "breakage" - X "breaks" Y if X touches any state which Y later reads. But that means that everything breaks everything, in practice.
The other problem is that your graph is probably not acyclic, because most nontrivial programs contain loops. So not only does X break Y, Y also probably breaks X, meaning that you can't automatically order X and Y with respect to one another.
