3 ms·
Nobody reads the spec though. I recall a bit of drama in Linux land was when ext4 broke the "write temp file + rename over old one" classic technique for safel
by dale_glass 4y ago
Nobody reads the spec though.
I recall a bit of drama in Linux land was when ext4 broke the "write temp file + rename over old one" classic technique for safely rewriting config files. People ended up with data loss and were outraged. ext4 devs said "But POSIX never actually promised this! Doing things our way is much better performance. Add extra fsyncs to actually get things to stick".
The result as I recall was a lot of drama back and forth.
- mjw1007 4y agoI think the lesson there is that "the spec is what the program currently does" doesn't work well for the behaviour around rare errors. (POSIX was a red herring: Linux has never limited itself to POSIX, and anyway POSIX didn't promise that doing things the way the ext4 maintainer recommended would work either.)
- pencilguin 4y agoThe drama was because POSIX formally offered no way to get the needed semantics without crazy changes. Shells would have had to be made very very slow. And the things made faster were already fast, and not even very important to have fast. When shells that trace back to v6 Unix depend on a behavior, that being undocumented is a bug in documentation.