Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 internet speed test! ×
Bug Operating Systems Software Linux

Linus Torvalds Says 'Buggy Crap' Made It Into Linux 4.8 (theregister.co.uk) 294

Two days after Linus Torvalds announced the release of Linux 4.8, he began apologizing for a bug fix gone bad. The Register reports: "I'm really sorry I applied that last series from Andrew just before doing the 4.8 release, because they cause problems, and now it is in 4.8 (and that buggy crap is marked for stable too)." The "crap" in question is an attempt to fix a bug that's been present in Linux since version 3.15. Torvalds rates the fix for that bug "clearly worse than the bug it tried to fix, since that original bug has never killed my machine!" Torvalds isn't happy with kernel contributor Andrew Morton, who he says is debugging with a known bad use of BUG_ON(). "I've ranted against people using BUG_ON() for debugging in the past. Why the f*ck does this still happen?" Torvalds writes, pointing to a 2002 post to the kernel mailing list outlining how to do BUG_ON() right. He later adds "so excuse me for being upset that people still do this shit almost 15 years later."
This discussion has been archived. No new comments can be posted.

Linus Torvalds Says 'Buggy Crap' Made It Into Linux 4.8

Comments Filter:
  • by Anonymous Coward on Wednesday October 05, 2016 @06:33PM (#53020683)

    we're introducing systemgdb

  • by JoeyRox ( 2711699 ) on Wednesday October 05, 2016 @06:35PM (#53020701)
    So that I can live a lifetime where I never make a mistake and everyone in the world is a moron compared to me.
    • by raymorris ( 2726007 ) on Wednesday October 05, 2016 @06:59PM (#53020863) Journal

      > I want to ... live a lifetime where everyone in the world is a moron compared to me.

      You really don't. Dealing with morons is frustrating. When everyone is a moron (regarding the subject at hand), every interaction is frustrating.

      I don't *excuse* Linus's temperament when it comes to kernel goofs, but I do understand it. There are a couple of very specific topics that I've studied and researched for decades. When I have discuss to those topics with people who have other specialties, and let them have input and make decisions that are within my realm of expertise but not theirs, it can be very frustrating. Because Linus is the expert on the Linux kernel, and he's a perfectionist, I understand it may get very frustrating to continually deal with mistakes that are, to him, stupid mistakes.

      • by Darinbob ( 1142669 ) on Wednesday October 05, 2016 @09:10PM (#53021621)

        I don't think the problem is that everyone else is a moron (though there are a lot of them to be sure), it's that everyone else has a different plan, agenda, goal, technique. So one person who lives and breathes the code is annoyed at other people who may want to get home early, are new to the code, are under a lot of pressure to get it done fast, and so forth. At the work place, should you accuse the employee of being incompetent at the task, or blame the manager for assigning a person without the necessary skills and experience to that task?

      • by dbIII ( 701233 ) on Wednesday October 05, 2016 @10:11PM (#53021933)
        I do excuse it.
        He is attacking the mistake of the person and not the person.
        Taking such stuff personally is ridiculous, but I suppose it does give people something to talk about with something that's almost a non-issue.
        • Exactly this. AFAIK he is equally harsh against his own errors.
        • by MrKaos ( 858439 )

          I do excuse it. He is attacking the mistake of the person and not the person. Taking such stuff personally is ridiculous

          I think that's a thing about geeks/nerds. If they see something that is stupid, they just say so. Most of the time there is no filter or consideration of the person behind the idea and, the effort they put into an idea, but don't intend it to come across as something personal. Usually it's because the critic (Linus in this case) isn't able to seperate their own emotions from their criticisms of an idea. Their code may be beautiful but their interactions are not and conflict arises.

          Unfortunately we all do

      • by raymorris ( 2726007 ) on Wednesday October 05, 2016 @11:51PM (#53022365) Journal

        Btw, I *am* the moron in kernel dev. My name is in the kernel changelog exactly once, which means I helped find and fix a problem when I had never done so before - I didn't know what the heck I was doing. Kernel development is very complex, with it's own set of rules quite different from userspace and I was in there trying to work on it, sending emails to the maintainer of the md subsystem (raid etc.) For anyone reading my emails or code, I was, compared to them, a moron. My flailing about might have been frustrating for them.

        On the other hand, after almost 20 years I understand Linux pretty well from the userspace perspective, particularly the storage and security side of things. So when I'm in a meeting at work and the project manager wants to put certain files "on the C drive", when he wants to defrag and log in as Administrator, he becomes the moron and I'm the one getting frustrated.

        • by GuB-42 ( 2483988 )

          According to some interview, it seems that Linus is quite tolerant of "morons" like you.
          He knows kernel dev is hard and he doesn't expect newcomers to be perfect. He is, however, much less lenient with seasoned kernel developers and recognized experts, because they should know better.

    • by bfpierce ( 4312717 ) on Wednesday October 05, 2016 @07:01PM (#53020873)

      Good News.

      All you need to do is download and run a linux distro, enter any Microsoft or Apple thread/forum/subreddit and act like this all the time!

    • by Carewolf ( 581105 ) on Wednesday October 05, 2016 @07:03PM (#53020883) Homepage

      So that I can live a lifetime where I never make a mistake and everyone in the world is a moron compared to me.

      Well, he makes alot of mistakes and often even admits to them, but that just doesn't make as good news and doesn't get spreads as wide when he is being impolite or arrogant.

      • by Raenex ( 947668 )

        Well, he makes alot of mistakes and often even admits to them

        But there's nobody who's going to call him a fucking moron and revoke his privs from committing code.

    • Re: (Score:2, Insightful)

      Sure. Just be reincarnated as someone who writes a completely new UNIX-compatible OS using a radical new software licensing scheme, attract multiple developers and users who allow same OS to be a transformational force in the computing industry and grow to be the most-used server OS in history, Then - and only then - can you apply, Asshat.
      • by MightyMartian ( 840721 ) on Wednesday October 05, 2016 @07:08PM (#53020909) Journal

        You can also add that it is running on a huge number of mobile devices, likely making it one of the most installed and in-use operating systems ever developed.

      • Oh, is it Unix compatible now?

      • by Raenex ( 947668 ) on Wednesday October 05, 2016 @10:22PM (#53021985)

        writes a completely new UNIX-compatible OS

        He only wrote the kernel for an i386 machine. And he cloned an existing system's functionality instead of writing a new system. You know, the same thing he flamed [theregister.co.uk] Tridgell for.

        using a radical new software licensing scheme

        He chose GPL so he could use the already written GNU code to plug his kernel into. You know, the bulk of the code that made up the OS. I always thought Stallman was petty about trying to call Linux, "GNU/Linux", but it's posts like yours that show he had a point. A typical Linux system has vast amount of work put into it that has nothing to do with the kernel or Linus, other than they need some kernel to run on.

        attract multiple developers and users

        Yes, he did that. Mostly as a matter of right place and right time, but he deserves credit for taking the ball, running with it, and achieving success.

        • I always thought Stallman was petty about trying to call Linux, "GNU/Linux", but it's posts like yours that show he had a point.

          It's also illustrated by peoples saying "Well Android is just Linux". Yeah it runs the kernel, but it's not Linux like, e.g. ubuntu or deadrat or arch is Linux. Calling it GNU/Linux does avoid that confusion too.

          Funny thing is Stallman specifically pointed out that problem *years* before it happened. I remember having some stupid flamy conversations on usenet about it. I can't ev

    • Re: (Score:2, Funny)

      by Anonymous Coward

      The OS has his name on it, heaven forbid he wants it to be good.

    • So that I can live a lifetime where I never make a mistake and everyone in the world is a moron compared to me.

      Maybe Linus can vote w/ his feet and switch to either FreeBSD or Minix

    • I'd love to be able to read all of the last 15 years of a forum-based documentation stream before writing my first line of code too. But it won't happen. You learn how the code works by reading the code, not by digesting the documentation. So it's too bad if we weren't in the crowd of cool kids 15 years old, if you want new generations to write code then you have to stop expecting them to know everything on the first day.

      • You learn how the code works by reading the code, not by digesting the documentation. So it's too bad if we weren't in the crowd of cool kids 15 years old, if you want new generations to write code then you have to stop expecting them to know everything on the first day.

        That's a good point, but it's not relevant. Linus is excoriating Andrew Morton, one of the lead developers. He has been working on the kernel for over a decade.

        It is one of Andrew's responsibilities to reach out to contributors to correct this kind of mistake. So, yes, it is reasonable to be angry at him over this.

        If you are new, then someone like Andrew should have a process to catch your mistakes and bring you up to speed.

    • Well, you can't have that, but you are capable of wasting your time posting ridiculous comments that in no way map to the reality of the situation!

      Ever heard of penis envy? Well you have the Torvolds variant.
    • Trust me. It isn't what it's cracked up to be.

      "Those of you who think you're perfect are really annoying to those of us who are."

    • by quenda ( 644621 )

      Did Linus actually spell "fuck" with an asterisk?
      When did Linus become the sort of guy to edit his speech so as not to offend overly-sensitive idiots?
      Maybe he has been living in California too long.

    • by Maritz ( 1829006 )
      Well you're already posting on Slashdot, it's a good start bud
  • by JoeyRox ( 2711699 ) on Wednesday October 05, 2016 @06:39PM (#53020743)
    Actually Linus, there is a good excuse - when the failing of a logic assertion could silently lead to behavior that is worse than a kernel halt, specifically data corruption.
    • by lgw ( 121541 )

      Sure, but maybe BUG_ON isn't the best way to express that? Heck, what is the standard in the Linux kernel for "crash immediately".

    • by c ( 8461 ) <beauregardcp@gmail.com> on Wednesday October 05, 2016 @08:30PM (#53021411)

      If you actually read the thread, that's basically where he says it's appropriate, and only then.

      The problem appears to be that people are using that feature in situations where recovery is feasible and desirable, or they're using it under the assumption that it only impacts people running special development kernels.

      • I guess this quote from Linus threw me off:

        "I should have reacted to the damn added BUG_ON() lines. I suspect I will have to finally just remove the idiotic BUG_ON() concept once and for all, because there is NO F*CKING EXCUSE to knowingly kill the kernel."
        • by c ( 8461 )

          Yeah, that's the quote everyone highlights, but he's a bit more nuanced about it when he's maybe a bit less pissed. Two e-mails in, you have http://lkml.iu.edu/hypermail/l... [iu.edu]:

          Killing machines because somebody made an assumption that was wrong is not ok.

          Killing the machine is ok if we have a situation where there literally
          is no other choice.

  • So... (Score:2, Insightful)

    by Anonymous Coward

    So... Linus reviews and approves a patch with code he knows causes issues (or should, since he "showed the right way" to do it 14 years ago), adds it to 4.8 after the last RC, releases 4.8, and THEN blows up at the original contributor for his own mistake in approving the patch? Dear god, someone get that man some Xanax, and take away his electronics for a week so he can calm the fuck down.

    • you really thinks that he personally reviews and approves all those patches? This work is "outsourced" to the various subsystem maintainers, incidentally it's one such maintainer that Linux is directing the rant for approving the patch in question.
  • Just remove it then (Score:5, Interesting)

    by ChunderDownunder ( 709234 ) on Wednesday October 05, 2016 @06:52PM (#53020829)

    I should have reacted to the damn added BUG_ON() lines. I suspect I will have to finally just remove the idiotic BUG_ON() concept once and for all

    Overlord issues 'BUG_ON() considered harmful' edict 14 years ago and only now thinks about removing said anti-feature?

    • An interesting choice of comparisons.

      After writing the famous "Go to statement considered harmful" essay, Dijkstra himself soon recanted, and clarified that there are particular circumstances where GO TO is the most straightforward solution, and results in the most readable and maintainable code. Of course, by then it had already developed such a stigma that there are now languages lacking such a construct, and those particular circumstances are now written with uglier and more confusing code.

      It appears BUG

      • by Shane_Optima ( 4414539 ) on Wednesday October 05, 2016 @09:16PM (#53021643) Journal
        I tend to think rules like "Don't use GOTO" are a good indicator of someone's critical thinking ability. If they make a strong effort to avoid it, that's fine. If they stand there and lecture me that I should be using some convoluted crap instead of a simple, intelligently labeled GOTO to escape from some tangled mess of ifs and loops (not infrequently a mess that was originally created by the speaker) then they may well be very analytical and capable people, but you can't ever trust them to come up with something original or to spot a truly bad idea when they're in a group environment.

        And then there's another of people, whose eyes glaze over completely when you try to say "Look, every single If-then-else has an implicit GOTO. This bit right here is fundamentally a conditional jump as well, but it doesn't look good to structure it using only Ifs because..." These conversations invariably end with them wandering away mute (if they're peers) or "don't use GOTO. It's against best practices" if they're supervisors.

        I doubt I've used it a dozen times in my life, but I've received grief over almost every single time.
  • worse crime (Score:2, Funny)

    by Anonymous Coward
    Introducing a change just prior to release? sorry but the only person to blame here is linus himself, BUG_ON() bad practises aside an even worse offense is introducing untested changes to code you are about to release.
  • by somenickname ( 1270442 ) on Wednesday October 05, 2016 @07:01PM (#53020877)

    Linus isn't likely to invite you out for an ice cream cone to discuss a bug and your feelings about it but, he's right that it's a pretty bad bug (http://lkml.iu.edu/hypermail/linux/kernel/1610.0/00878.html). Luckily, the way kernel development works means that 99.9999% of users will never see this bug. No major distro has shipped this yet and by the time this kernel trickles down to users (if ever), the bug will be fixed.

    • by rubycodez ( 864176 ) on Wednesday October 05, 2016 @07:13PM (#53020937)

      those kind of people that think they have to have the latest kernel are so amusing though, bleeding edge often means you'll bleed

      • Re: (Score:3, Interesting)

        by phorm ( 591458 )

        4.8 isn't just the newest kernel, it was also just recently earmarked as the newest *stable* kernel.
        For myself, I've got a newer AMD card for which a newer 4.7.6+ kernel is required in order to get proper/full functionality from the built-in AMDGPU module. I was actually on my way to install 4.8 last night but ran into some space issues because I forgot to disable a bunch of modules I don't use (damn those things get big now).

    • I don't really like when people complain about someone specifically and mention his/her name. But the bug is bad and Linus is right about that. The kernel is the most complicated thing in the OS, by far. And there is a reason we all benefit from an open source kernel of that amazing quality, made by developers all around the world on their free time, and that's thanks to Linus's strict management.
  • Not apoligizing (Score:5, Insightful)

    by Dan East ( 318230 ) on Wednesday October 05, 2016 @07:09PM (#53020917) Homepage Journal

    He's not apologizing. Saying "I'm sorry blank blank blank" doesn't constitute an apology.

    I'm really sorry I applied that last series from Andrew

    That's not an apology. That's saying he's disappointed someone screwed up, and he named that person to direct the blame towards that person. No dev team I've ever been on would throw someone under the bus like that. We would take responsibility as a team. He might as well say "I'm sorry Andrew sucks as a developer and is so incompetent", because that is no less an apology than what he actually did say.

    Now had he said "I'm really sorry I didn't do my job and I didn't properly test contributions, and as the gatekeeper to what code becomes official, I take full responsibility for the bug and I'm taking actions to do my job better in the future", well, that would be an apology.

    • Re:Not apoligizing (Score:5, Informative)

      by Anonymous Coward on Wednesday October 05, 2016 @07:29PM (#53021037)

      Hmm, Andrew Morton is one of the two most trusted kernel developers, the other one being Al Viro. These two get absolutely no kiddie gloves from Linus when they do something they really, really, *really* ought to know better. OTOH, he pretty much merges anything these two send to him blindly on trust, *even when he is less than one week away from shipping it as a stable kernel*.

      Does that make it a bit more clear?

      And, believe me, these two get one or two rants like that at most once every 15 years. They are *that* good, and every single kernel developer worth something *knows* it. They get that level of rant with names included, because it is the other side of getting that level of trust out of Linus. Linus pretty much trusts Andrew Morton to be Linus himself.

      And actually, so does everyone else [in the Linux kernel *upstream* community], as far as I know. So, yeah.

    • Re:Not apoligizing (Score:5, Insightful)

      by Kjella ( 173770 ) on Wednesday October 05, 2016 @07:54PM (#53021189) Homepage

      That's not an apology. That's saying he's disappointed someone screwed up, and he named that person to direct the blame towards that person. No dev team I've ever been on would throw someone under the bus like that. We would take responsibility as a team. He might as well say "I'm sorry Andrew sucks as a developer and is so incompetent", because that is no less an apology than what he actually did say.

      He's absolutely not apologizing to Andrew, he's apologizing to the end users. This release is below the standard of quality he wants for the Linux kernel and he's not shy about naming and shaming those responsible. And that includes Linus himself for not catching the offending code and for running the project in a way that let it happen, that much is sincere. But he's not there to give moral support, he's there more like a drill sergeant or elite coach. They are not there to cuddle you, they're there to find the people who can excel and turn them into disciplined, highly skilled specialists. Pushing people to their limits, pointing out their flaws, have them try over and over again, always strive for them to do better isn't how you make friends. Usually you end up with a few gold nuggets and a lot of people who hate your guts. It's a lot easier to say "Looks fine to me, good work let's go have some beers" instead, but that's also how you not end up with the Linux kernel.

    • Re:Not apoligizing (Score:4, Informative)

      by somenickname ( 1270442 ) on Wednesday October 05, 2016 @07:59PM (#53021215)

      He's not apologizing. Saying "I'm sorry blank blank blank" doesn't constitute an apology.

      What makes you think he was trying to apologize? He's highly irritated that one of his closest generals let something bad through. He reacted in normal Linus fashion but, I don't think you could get to where Andrew Morton is without being familiar with what Linus expects and how he reacts when his expectations aren't met. You have to have really, really thick skin to work at that level.

      So, yeah, it wasn't polite. But, if you've ever worked at the higher levels of a big company, "polite" isn't even vaguely a consideration. The only reason that Linus rants make Slashdot news is because they happen in public. At any other company, a person in Andrew Mortons position is likely to be verbally berated but, it all happens behind closed doors.

      If anything, in this case, people familiar with Andrew Morton probably find it slightly amusing that a Jedi Master can make mistakes too.

      If I remember right, Andrew Morton has a Slashdot account so, maybe he can chime in.

      • by DeVilla ( 4563 )
        No doubt Andrew has to have thick skin, but personally I think tearing into him just isn't cool.
        • I don't think it's cool as in, "Woohoo! Let's break out the popcorn and watch this guy burn at the stake!" but, it's the way the project is run. And, based on the fact that it's probably the most used single piece of software on the planet, I think you have to give a little leeway to the leadership and the devotion to perfection. Especially since, as I said, part of the reason Linus seems like a tyrant is that his business gets aired on public mailing lists as opposed to closed corporate e-mail accounts.

          • by DeVilla ( 4563 )
            I get all that. I'm talking about Andrew specifically. Linus isn't wailing on some stooge he hardly knows or someone with a reputation for generating crap.
            • True. And, I can see your point. But, at the same time, it's well known that Linus behaves like this. Giving a pass to your right hand man *because* he's your right hand man is probably bad for the project. It's like saying, "Everyone who does something stupid will be called out. Except Andrew. I will just gloss over that".

        • Andrew might actually appreciate the rant believe it or not. Given a rant from Linus means that you provide something of great value to him and that you have an opportunity to improve. In organisations where things like this gets swept under the rug you one day wake up realising that you have stalled in your performance and are no longer relevant. It would have been a completely different thing if Linus has given him a rant on a regular basis like how supposedly Bill Gates management style was.
  • by King_TJ ( 85913 ) on Wednesday October 05, 2016 @07:28PM (#53021025) Journal

    As I'm not a developer, I had to read through some of the comments left to the original stories to figure out what the fuss was all about.

    Maybe most Slashdot readers are more focused than I am on coding and already know all of this. But what I learned is that essentially, sticking this BUG_ON line someplace in the code causes Linux to do the equivalent of a Windows blue screen of death when it hits it. It's a purposeful way to cause an instant system halt because you believe the software should never reach that spot in the code, and if it does, you're worried that data corruption will result -- so better to halt things than let that happen.

    It sounds like even back in 2002 though, Linus was expressing his dislike for using it and recommended a WARN_ON alternative that would just alert people to the issue but let things continue.

    The thing is? I'm not entirely sure Linus's anger is warranted here? It sounds like basically, he's of the philosophy that "the code must go on". In other words, it's almost always better to keep the system running, despite any bugs, than to kernel panic and stop the whole thing. Perhaps in a world of virtual machines and servers running a whole slew of different processes at the same time, there's logic to this? (EG. If one of your boxes is needed to perform DNS, DHCP and/or other basic functions for a whole network -- you'd probably rather it keep doing those things, even if a bug is hit that means a process reading/writing data to files someplace else gets a critical error that could corrupt records in a database or improperly truncate some other file it was working with.)

    BUT .... this could just as easily be subjective, based on where the bug lies and what it impacts, vs. what YOU consider a mission critical use of the machine in question. If BUG_ON saves data from loss, maybe that really is better for SOME users than letting it go on generating/logging warnings that people aren't going to notice right away?

    I get the idea Linus leans the direction he does on this issue mainly because he wants any kernel he approves as "stable" to have that appearance, buggy or not.

  • by zenlessyank ( 748553 ) on Wednesday October 05, 2016 @07:51PM (#53021167)

    Buncha snowflakes and pop-tarts can't handle some feedback with a few 'fucks' thrown in??

    You are in the wrong damn career. Computers and their software WAS BUILT with profanity. It is part of the culture.It is just like the military. Wars are won with profanity and murder.

    If you don't want to hear it then go teach preschoolers how to color.

    • by somenickname ( 1270442 ) on Wednesday October 05, 2016 @08:08PM (#53021291)

      I'd revoke all my posts in this thread to mark this up...

    • Re: (Score:3, Funny)

      by guruevi ( 827432 )

      But it's so anti-feminine to use curse words. It turns women away from computer engineering.

    • by Jeremi ( 14640 )

      Really? Most programmers I know take pride in their ability to converse calmly and rationally about the problems at hand, without letting their emotions or their egos get the better of them.

      • by somenickname ( 1270442 ) on Wednesday October 05, 2016 @10:55PM (#53022109)

        Calm and rational discussion should be the norm, absolutely. No one argues with that. But, when someone fucks up, you don't hand them a lollipop and reassuringly pet their head.

        • Calm and rational discussion should be the norm, absolutely. No one argues with that. But, when someone fucks up, you don't hand them a lollipop and reassuringly pet their head.

          Those aren't the only two options. You are acting as if the only two options are "lollipops and pettings" and "berate them in public". You can berate them in private, and firmly (but politely) mark them down in public.

          No one here advocated treating them with kid gloves.

          • This is Linux and LKML, nothing is done in private. All conversations and development is done in public. And I have yet to see Linus rant against "new unknown guy" unless said person have really really fucked up beyond repair (I somehow recall a situation some years ago where an individual was trying to get in a patch in order to get "Linux Kernel developer" in his CV so he submitted bad patch after bad patch until Linus lost it), he only rants at people who both can take it and that should know better.
      • by gweihir ( 88907 )

        But then, most programmers (in fact all of them except for one) have not built the Linux kernel from scratch and are not not maintaining it.

        And what is this whimpyness about a bit of clear language? PC does not get engineering done. Pretending mistakes are not serious kills engineering.

  • So, as the same reason many folks have kids is the same reason they contribute to an open source protect: To improve their feelings of self-worth. And the result may be the same in both cases.
  • Ok, Linus sounds like a total asshole with no iota of social grace, but the dude is a freaking genius. This more than offsets his negatives. Think of all the assholes walking around out there who don't do jack for society. I actually fear for Linus. If anything ever happened to him, people like Andrew are going to make so that the linux codebase gradually descends into chaos. I can already see the memes (hopefully many years from now) with Linux saying "miss me?" and smiling while beating an inferior progra
    • by DeVilla ( 4563 )
      Did I miss something? Is Andrew really that bad? He let a bug through here, but I remember him being one of the good ones.
  • 1.) Andrew Morton was the maintainer that published the commit, but Johannes Weiner pushed the fix. Almost no one mentions this. 2.) Point #1 doesn't really matter. Who cares about who did what. 3.) A relatively and surprisingly cool Linus comments on something that's been bugging him. It's almost pub talk except kernel developers. I wish I could've created a more cogent proof or argument, but really, non-news. Kernel developers discuss an issue resolved slightly later than ideal. Linus loves his beautiful

Not only is UNIX dead, it's starting to smell really bad. -- Rob Pike

Working...