LWN: Comments on "Thoughts on the ext4 panic" https://lwn.net/Articles/521803/ This is a special feed containing comments posted to the individual LWN article titled "Thoughts on the ext4 panic". en-us Thu, 23 Oct 2025 17:02:56 +0000 Thu, 23 Oct 2025 17:02:56 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Thoughts on the ext4 panic https://lwn.net/Articles/524451/ https://lwn.net/Articles/524451/ neilbrown <div class="FormattedComment"> The backups you need can take any of a range of values from none to offsite copies that let you reconstruct the state of anything at any moment.<br> <p> </div> Mon, 12 Nov 2012 05:10:52 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/524443/ https://lwn.net/Articles/524443/ kevinm <div class="FormattedComment"> The need for backups is binary - you either need backups, or you don't need backups.<br> </div> Mon, 12 Nov 2012 03:58:13 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/524217/ https://lwn.net/Articles/524217/ steffen780 <div class="FormattedComment"> Sorry, but that claim is just wrong. Mirroring and replication do REDUCE the need for backups. They do, however, not ELIMINATE it. They protect against many forms of hardware failure, including what I would assume is the most common cause of hw-caused data loss: disk failures. Hence they reduce the need for backups. Of course they do not get rid of user-/app-level failures. They're not supposed to (and by definition cannot), and hence they do not eliminate the need for backups... but they do definitely reduce it.<br> </div> Sun, 11 Nov 2012 02:16:59 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/523575/ https://lwn.net/Articles/523575/ nix <div class="FormattedComment"> Quite. I did, after all, spot this problem on a hardware RAID-5 array. The RAIDness of the array didn't help: the corruption was faithfully written out. It had neither the evil nor corrupted bits set, after all.<br> <p> </div> Thu, 08 Nov 2012 15:34:41 +0000 Exceptions and rules https://lwn.net/Articles/523527/ https://lwn.net/Articles/523527/ Wol <div class="FormattedComment"> This comment actually gets to the root of the problem. The modern understanding of the word "prove" has changed.<br> <p> Hence, the saying no longer means what it did, because the meaning of the words have changed underneath it.<br> <p> Cheers,<br> Wol<br> </div> Thu, 08 Nov 2012 12:01:17 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/523494/ https://lwn.net/Articles/523494/ dlang <div class="FormattedComment"> to err is human, to really foul things up requires a computer<br> <p> and to _really_ trash things requires automation :-)<br> <p> automated replication (including mirroring) is a wonderful way to propagate corruption (as someone who has automated the trashing of several hundred systems with a single command, I can really attest to this one)<br> </div> Thu, 08 Nov 2012 07:49:51 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/523490/ https://lwn.net/Articles/523490/ kevinm <div class="FormattedComment"> Mirroring, whether to separate disks or separate machines, also does nothing to reduce the need for backups.<br> <p> In the case of application- or user- level corruption, mirroring will simply replicate the error very efficiently.<br> </div> Thu, 08 Nov 2012 06:00:59 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/523174/ https://lwn.net/Articles/523174/ anselm <div class="FormattedComment"> Newspaper columns are as narrow as they are because that lets the publisher fit more stuff on a page and cut paper costs, not because narrow columns are especially easy to read.<br> <p> Newspapers even go to the trouble of having special fonts designed for them (where do you think Times Roman got its name?) in order to be able to cram more type into a narrow column, thus making the effective column width greater.<br> </div> Tue, 06 Nov 2012 18:25:20 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/522884/ https://lwn.net/Articles/522884/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; As for the ideal column width to read, go do some research on why newspapers use such narrow columns, the ideal width for reading is surprisingly narrow, and NOT 66 characters.</font><br> <p> Source code and newspaper articles are quite different types of "literature". The are typically laid out in extremely different ways. It would be a very surprising coincidence if their "ideal widths" were the same.<br> <p> </div> Sun, 04 Nov 2012 23:37:43 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/522476/ https://lwn.net/Articles/522476/ daglwn <div class="FormattedComment"> <font class="QuotedText">&gt; I don't see a Linux IDE which allows this.</font><br> <p> Emacs/CEDET.<br> <p> </div> Thu, 01 Nov 2012 19:50:52 +0000 Eight character tabs https://lwn.net/Articles/522379/ https://lwn.net/Articles/522379/ etienne <div class="FormattedComment"> But most of the time you want to understand the structure of the function you are about to modify, even if you have (probably commented) printf's showing that you entered the function with those parameters, that you are calling that other function with those parameters, what is the value of each of the fields of that structure...<br> Having 3/4 lines of code with no algorithm meaning does not help to see the structure of the code and is difficult to comment/uncomment at once; it is easier to tell your editor not to wrap lines and so not display the end of those (probably commented) lines.<br> Obviously you can write the functions print_mystruct_and_cpt(), print_mystruct_and_idx(), ... that you call only once in a commented out block.<br> Linux source do not have much "logging" lines, so it is not a real problem there.<br> </div> Thu, 01 Nov 2012 12:06:48 +0000 Eight character tabs https://lwn.net/Articles/522358/ https://lwn.net/Articles/522358/ ncm <div class="FormattedComment"> Me, I've never understood why people insist that printf format strings should be indented at all. I push them to the left margin, and it brings no confusion, but much clarity.<br> </div> Thu, 01 Nov 2012 09:41:15 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/522357/ https://lwn.net/Articles/522357/ ncm <div class="FormattedComment"> "So many ways"?<br> <p> 1. Wrong<br> <p> Any others?<br> </div> Thu, 01 Nov 2012 09:32:04 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/522325/ https://lwn.net/Articles/522325/ Aliasundercover <div class="FormattedComment"> <font class="QuotedText">&gt; FYI, just checked and Eclipse (at least Juno/4.2) allows this. I can drag a source tab and place it next to my main source view</font><br> <p> Hmm, I last poked at Eclipse a while back and got stuck in tile land till I gave up and moved on to try other IDEs which also left me in tiles. I find tiles most unsatisfying as I wind up spending my time fiddling with them and scrolling too small window fragments even on the biggest screen. I much prefer overlapping windows I can customize. I have been working in Kate which lets me arrange things as I like, permits multiple windows into the same source file and shares the screen well with windows from other programs.<br> <p> Taking another look based on your message I got the Eclipse 3.7 Ubuntu offered me and found I can indeed get decent looking windows if I fiddle enough. It will take time to know if the fiddling stays excessive or I can tame it with more knowledge.<br> <p> Of course it wants to mangle my code as I type. It really wants me to follow someone's idea of correct style and I know I will be some time getting it to stop helping me by making an awful mess of my code. Why exactly does it insist on extra * characters on each line? (No, don't answer that, I just want to turn it off.)<br> <p> /*<br> * I can really do without these fool *s.<br> * Much preference fussing and still I get *s.<br> */<br> <p> Will have to see. Looking better than last time. Qt Creator and KDevelop never got me this far, not past tiles and tabs with them. So much IDE stuff filling the screen, so little space for the source code I actually care about.<br> <p> Thanks<br> </div> Thu, 01 Nov 2012 03:52:27 +0000 Eight character tabs https://lwn.net/Articles/522227/ https://lwn.net/Articles/522227/ nix <div class="FormattedComment"> I don't understand your debug printf() comment at all. You can always break a printf() line, even in the format string, with string literal concatenation.<br> </div> Wed, 31 Oct 2012 18:52:06 +0000 Eight character tabs https://lwn.net/Articles/522211/ https://lwn.net/Articles/522211/ marcH <div class="FormattedComment"> "In theory, theory and practice are the same. In practice, they are not."<br> <p> </div> Wed, 31 Oct 2012 18:09:33 +0000 Eight character tabs https://lwn.net/Articles/522200/ https://lwn.net/Articles/522200/ tialaramex <div class="FormattedComment"> printf() - a function famous for never having been implicated in any complicated security bugs. Oh wait.<br> <p> No, thanks all the same but I'd rather actually see the code I'm maintaining and not trust that the bits I can't see aren't important.<br> <p> <p> I like the ASCII control characters, but most of them don't belong in my source code and that includes U+0009 TAB. Use soft tabs, set the continuous integration software to barf on hard tabs in source code, along with mysterious trailing whitespace and similar sins.<br> </div> Wed, 31 Oct 2012 17:08:24 +0000 Eight character tabs https://lwn.net/Articles/522139/ https://lwn.net/Articles/522139/ nix <div class="FormattedComment"> Variable-width fonts don't work at all for most programming languages for the reasons you state. I actually tried to use a variable-width font only for comments for a while, but it really messes up ASCII-art, and the places where you find ASCII-art in comments are generally the places where the code is complex enough to *need* it, and you don't want to have difficulty piled on by interpreting proportional-font damage too.<br> </div> Wed, 31 Oct 2012 13:21:25 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/522138/ https://lwn.net/Articles/522138/ nix <div class="FormattedComment"> Emacs has always been able to split the screen, since long long before X support existed. (It calls the panes 'windows' and the GUI windows 'frames' because Emacs does everything differently.)<br> <p> Emacs 24 can split the screen, both manually and automatically, in so many ludicrous ways I have not begun to explore the possibilities. (The window-management code was rewritten by Martin Rudalics, and the new code is... very flexible. Almost too flexible to understand.)<br> <p> </div> Wed, 31 Oct 2012 13:20:00 +0000 Eight character tabs https://lwn.net/Articles/522137/ https://lwn.net/Articles/522137/ nix <div class="FormattedComment"> Yeah, automated reindentation before commit only works if you have something pre-commit that reindents again. I've worked on projects with such rules, and it does work (certainly better than what we had before, with people with all sorts of tab widths and odious 'optimizing' editors that translated spaces to tabs of whatever width the user had set throughout the entire file on every save). Better yet is to adapt to whatever the coding standard of the project is and just eat your whining most of the time. (Says the guy who whined about part of the kernel's coding standards just a few posts up. Hypocrisy is *good* for you!)<br> <p> </div> Wed, 31 Oct 2012 13:17:59 +0000 Eight character tabs https://lwn.net/Articles/522133/ https://lwn.net/Articles/522133/ etienne <div class="FormattedComment"> <font class="QuotedText">&gt; spaces are nice and uncontroversial and always work. Tabs don't.</font><br> <p> Well, have you ever used an editor with variable width font?<br> Why - maybe because text is easier to read...<br> Then, you can only use tabs to align stuff - unless that is the beginning of the line. If you comment a line using "//" at its beginning stuff stay aligned.<br> I do not want a hard limit on the number of chars, because not all chars are the same width...<br> <p> Also, in some case (long debug printf() line), breaking the long line makes the structure of the function more complex than it really is; just tell you editor not to wrap and just ignore the end of the printf() line - it is just a printf()!<br> </div> Wed, 31 Oct 2012 11:40:17 +0000 Eight character tabs https://lwn.net/Articles/522134/ https://lwn.net/Articles/522134/ Jonno <div class="FormattedComment"> Lining up arguments in tab-indented code works just fine, iff you use the same number of tabs for indentation, and then line up the arguments with spaces.<br> </div> Wed, 31 Oct 2012 11:37:32 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/522124/ https://lwn.net/Articles/522124/ cesarb <div class="FormattedComment"> <font class="QuotedText">&gt; What is it with the IDEs not allowing multiple source windows? [...] I don't see a Linux IDE which allows this.</font><br> <p> VIM has split/vsplit. Qt Creator also has split modes. And as others have already noted, Eclipse also has something of the sort. IIRC, Emacs can split the screen too.<br> </div> Wed, 31 Oct 2012 09:25:42 +0000 Eight character tabs https://lwn.net/Articles/522121/ https://lwn.net/Articles/522121/ man_ls You can try telling git to <a href="http://unix.stackexchange.com/questions/10277/ignore-whitespaces-changes-in-all-git-commands">ignore whitespace</a>. <p> My point of view is a bit different: tabs are good, therefore avoid everything that doesn't work with tabs. Lining things up is evil, hard wrap-up limits are evil, and so on. Yes, it requires a lot of discipline, but then so does software development in general. Wed, 31 Oct 2012 08:52:52 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/522119/ https://lwn.net/Articles/522119/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; but I don't know if I'd consider managing a full screen eclipse along with other windows "easy"</font><br> <p> No it's not easy; you are not supposed to do that. Instead, you are supposed to install and use whatever plug-ins give you the functionality you need *within* Eclipse.<br> <p> Eclipse is the new Emacs: a Developer Operating System :-)<br> <p> <a href="http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.rse.doc.user%2Fgettingstarted%2Fg_start.html">http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.ecl...</a><br> <p> </div> Wed, 31 Oct 2012 08:40:05 +0000 Eight character tabs https://lwn.net/Articles/522109/ https://lwn.net/Articles/522109/ bronson <div class="FormattedComment"> ... and then somehow unreindent before you commit your code? Otherwise, unless you enforce company-wide indent settings (good luck!), most of your changes will be whitespace churn.<br> <p> I'm at the point where I'm ready to declare that, on a real world codebase with multiple teammembers, nothing at all works. Nobody likes the whitespace gestapo.<br> </div> Wed, 31 Oct 2012 01:05:02 +0000 Exceptions and rules https://lwn.net/Articles/522108/ https://lwn.net/Articles/522108/ nix <div class="FormattedComment"> Agreed. I guess this just shows that the ext4 problem really *was* a tempest in a thimble (too small to be a teapot): thoroughly dull once the panic died away and its complete lack of terrifying implications sank in.<br> </div> Wed, 31 Oct 2012 00:43:34 +0000 Eight character tabs https://lwn.net/Articles/522107/ https://lwn.net/Articles/522107/ nix <div class="FormattedComment"> Unfortunately changing indentation on the fly by changing tabs never, ever works. It only works if all developers are utterly rigorous about only ever indenting with tabs, always indenting with strictly one more tab, never using tabs to line anything up -- and, oh yes, never trying to make anything line up at all. If you like a coding style which lines up wrapped parameters one column after the open bracket of the call on the previous line (a very common style) you cannot do it, even with tabs, and expect indentation-changing-via-tab to work.<br> <p> I have never worked on a codebase where changing indentation via tab width changes did anything but turn the codebase into goo. It is hopeless.<br> <p> The way to reindent is via automatic reindentation programs (such as GNU indent). Teach that your indentation style, and you're home free. Nothing else works.<br> <p> </div> Wed, 31 Oct 2012 00:42:07 +0000 Eight character tabs https://lwn.net/Articles/522099/ https://lwn.net/Articles/522099/ man_ls The problem with spaces is exactly that you cannot change indentation on the fly just by changing the local configuration. Every developer can choose the tabstop that suits them better. It is even possible to have different configurations for different situations: one for the laptop screen, another when the laptop is hooked to a monitor, etcetera. Spaces don't allow that. <p> Also, it takes longer to press space four times (or eight) than tab once. You can usually configure your favorite editor to insert the spaces when tab is pressed, even to delete them (<a href="http://vim.wikia.com/wiki/Converting_tabs_to_spaces">:set expandtab</a> in vim), so this issue is not so important. <p> As to the failure case you mention above, it makes sense to indent always using tabs, consistently. I have now remembered my painful days of aligning arguments using spaces -- it is just not worth it. I prefer to use short argument lists and set line wrap at 120 so I don't ever see multi-line argument lists; if they arise then just indent into a new line. Tue, 30 Oct 2012 21:49:19 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/522097/ https://lwn.net/Articles/522097/ khc <div class="FormattedComment"> But only if all the windows you need to manage are eclipse windows, of course. I recently started to play with Dart using the Dart Editor which is basically eclipse, it works ok, but I don't know if I'd consider managing a full screen eclipse along with other windows "easy"<br> </div> Tue, 30 Oct 2012 21:17:16 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/522095/ https://lwn.net/Articles/522095/ dlang <div class="FormattedComment"> 80 characters was based on 10 characters per inch on standard typrwriters combined with 8 1/2" wide paper and the fact that you needed margins of ~1/4" to avoid problems with trying to type up to the edge of the paper.<br> <p> When teletypes were built, they used the same print mechanisms and so had the same limits.<br> <p> When terminals were built, they mimicked the printed stuff (so that you could see everything that you could see on the paper, and it was a waste to have anything wider, since the people who were still using paper wouldn't be able to see it)<br> <p> IBM punch cards were 80 columns to match the paper as well.<br> <p> <p> The problem is none of these are good reasons any longer.<br> <p> <p> As for the ideal column width to read, go do some research on why newspapers use such narrow columns, the ideal width for reading is surprisingly narrow, and NOT 66 characters.<br> <p> a paperback book is about the outer edge of what a good width is (no matter what the font size)<br> </div> Tue, 30 Oct 2012 21:00:07 +0000 Exceptions and rules https://lwn.net/Articles/522089/ https://lwn.net/Articles/522089/ cmccabe <div class="FormattedComment"> Usually comments on LWN are very informative. This thread however, is the exception that... never mind.<br> </div> Tue, 30 Oct 2012 20:01:16 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/522082/ https://lwn.net/Articles/522082/ vonbrand <p>According to <a href="http://www.poynton.com/notes/typesetting/index.html">Poynton's "Ten Common Mistakes in the Typesetting of Technical Documents"</a>, a 66-character line of text is widely considered ideal for readability. I've seen other claims in the same vein (e.g. in the LaTeX memoir and KOMA packages documentation, aimed at serious book-writing). The 80 characters come from the IBM punched cards of yore, but their design in turn surely wasn't completely random either.</p> <p>The decree from the $POWERS_THAT_BE is enshrined in the Linux coding style; trying to change that is futile (or at least, there are more fruitful outlets for your creative energies).</p> Tue, 30 Oct 2012 18:53:57 +0000 Eight character tabs https://lwn.net/Articles/522076/ https://lwn.net/Articles/522076/ marcH <div class="FormattedComment"> <font class="QuotedText">&gt; But yes, over all, too many people will get tabs wrong that standardising on spaces - inferior as they are - is the only option.</font><br> <p> Tab indentation was invented to illustrate "The perfect is the enemy of the good".<br> <p> Let everyone have his own indentation taste from the same source? Great idea on paper. Falls apart on a regular basis. Because it's not compatible with lining up across lines, because it's not compatible with a max width, etc. And because people are only human and will not be disciplined enough.<br> <p> </div> Tue, 30 Oct 2012 18:11:09 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/522074/ https://lwn.net/Articles/522074/ marcH <div class="FormattedComment"> It is indeed much easier to split and generally manage the screen with a full screen Eclipse than with most window managers.<br> <p> </div> Tue, 30 Oct 2012 17:26:59 +0000 Eight character tabs https://lwn.net/Articles/522075/ https://lwn.net/Articles/522075/ nix <div class="FormattedComment"> I don't see anything wrong with spaces. They make your uncompressed source code 10% or so larger, but these days that has no effect at all on anyone unless you're dealing with a source tree as large as, say, Chromium's. Everyone knows how big a space is, nobody can decide to make it take up more horizontal space... spaces are nice and uncontroversial and always work. Tabs don't.<br> </div> Tue, 30 Oct 2012 17:26:50 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/522043/ https://lwn.net/Articles/522043/ salimma <div class="FormattedComment"> ... though when it comes to file systems, Apple's HFS+ is actually replete with seldom-used optional features - such as, mind-boggling as it might seem, case sensitivity. <br> <p> But these are just exceptions that prove the rule... *ducks for cover*<br> </div> Tue, 30 Oct 2012 15:10:01 +0000 Eight character tabs https://lwn.net/Articles/522040/ https://lwn.net/Articles/522040/ paulj <div class="FormattedComment"> Well, dealing with spaces has failure cases that just don't exist if you use tabs everywhere :). But yes, over all, too many people will get tabs wrong that standardising on spaces - inferior as they are - is the only option.<br> </div> Tue, 30 Oct 2012 14:41:29 +0000 Eight character tabs https://lwn.net/Articles/522039/ https://lwn.net/Articles/522039/ nix <div class="FormattedComment"> Changing the local tab width is safe as long as you never ever use spaces to indent anywhere, even on the ends of tabs to line up arguments in multi-line argument lists. That's... rare, and if people proceed to change tab widths and then line up arguments using *that* width, the result is just a mess for everyone. (Just another reason why it is basically a mistake to use tabs for anything. Spaces everywhere! I note that even GNU software, long a weird 8-char-tab-for-indentation-but-four-char-indent holdout, is slowly switching to spaces, project by project, because dealing with tabs has failure cases that just don't exist if you use spaces everywhere.)<br> </div> Tue, 30 Oct 2012 14:32:52 +0000 Thoughts on the ext4 panic https://lwn.net/Articles/522037/ https://lwn.net/Articles/522037/ viro <div class="FormattedComment"> oh, give me a break...<br> <p> tagp = pointer; // fairly fat expression, actually<br> while (tagp - pointer &lt;= size) { // again, and so's 'size'<br> tag = (journal_block_tag_t *) tagp;<br> flags = be32_to_cpu(tag-&gt;t_flags);<br> /* couple of lines */<br> err = jread(&amp;obh, journal, io_block);<br> if (err) {<br> success = err;<br> printk(....);<br> } else {<br> /* about 50 lines */<br> }<br> skip_write:<br> tagp += sizeof(journal_block_tag_t);<br> if (!(flags &amp; JFS_FLAG_SAME_UUID))<br> tagp += 16;<br> <p> if (flags &amp; JFS_FLAG_LAST_TAG)<br> break;<br> }<br> <p> In a case. Wrapped in a while. Only at Dibbler's, and that's cutting me own throat...<br> <p> Seriously, in this case 80-column heuristic has worked nicely - the code structure is badly obfuscated and 4-character tabs would only hide a visible indicator of trouble.<br> </div> Tue, 30 Oct 2012 14:14:37 +0000