|
|
Subscribe / Log in / New account

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.


to post comments

An Ubuntu kernel bug causes container crashes

Posted Jul 7, 2022 22:48 UTC (Thu) by roc (subscriber, #30627) [Link]

Changing the names of things when their meaning changes helps reduce these issues. But you're right, there's no way to fully avoid them.


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds