Usually, I don't write such things on this blog, but I just read an article in an ACM journal and started to laugh. I think that this is really amazing, as most of the time scientific publications are boring, sometimes interesting, and rarely ironical.
The article is called: "A few billion lines of code later: using static analysis to find bugs in the real world" and it describes the experience of bringing a static analysis tool successful in the academic setups into the industrial world. The authors Al Bessey, Ken Block, Ben Chelf, Andy Chou, Bryan Fulton, Seth Hallem, Charles Henri-Gros, Asya Kamsky, Scott McPeak, and Dawson Engler describe many-many issues that they encountered. While this is can be interesting to people working with a static analysis I just want to share a couple of paragraphs that made me laugh:
We got the following support call from a large customer:“Why is it when I run your tool, I have to reinstall my Linux distribution from CD?”This was indeed a puzzling ques- tion. Some poking around exposed the following chain of events: the compa- ny’s make used a novel format to print out the absolute path of the directory in which the compiler ran; our script misparsed this path, producing the empty string that we gave as the desti- nation to the Unix “cd” (change direc- tory) command, causing it to change to the top level of the system; it ran "rm -rf *" (recursive delete) during compilation to clean up temporary files; and the build process ran as root. Summing these points produces the removal of all files on the system.
And I find this absolutely hilarious. Because you know, the industry does not care about having a common protocol, or a concept of a "path" that can tell you what is its value without the last segment, etc… No, you have to get a string and then parse it, and then something will give you another string, because why not? And I am not blaming the authors because they did an amazing job. I'm blaming the humanity, in particular, the informatics part. Because instead of creating something useful for programmers, software engineers are told that strings are the way to go… But this rant is for another time.
I really suggest the article, because it is interesting. Both static analysis developers and addopters can leanr from it:
Al Bessey, Ken Block, Ben Chelf, Andy Chou, Bryan Fulton, Seth Hallem, Charles Henri-Gros, Asya Kamsky, Scott McPeak, and Dawson Engler. 2010. A few billion lines of code later: using static analysis to find bugs in the real world. Commun. ACM 53, 2 (February 2010), 66-75. DOI: https://doi.org/10.1145/1646353.1646374
No comments:
Post a Comment