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."
in other news (Score:5, Funny)
we're introducing systemgdb
Re:That's why it's called Linsux (Score:4, Funny)
Dangit gotta warn me when you are posting... now I'm going to have to replace the troll detector again. And two rooms of the house where it was sitting .. and a cat.
Re: (Score:2)
Re: (Score:2)
I want to be reincarnated as Linus Torvalds (Score:5, Funny)
You really don't. Dealing with morons is frustrati (Score:5, Interesting)
> 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.
Re:You really don't. Dealing with morons is frustr (Score:4, Informative)
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?
Re:You really don't. Dealing with morons is frustr (Score:5, Interesting)
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.
Re: (Score:2)
Re: (Score:3)
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
Ps I AM the moron kernel contributor (Score:5, Interesting)
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.
Re: (Score:3)
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.
Re: (Score:2)
Come down off your thrown jerk-face
How would you throw a jerk-face, and why would you stand on one?
Re: (Score:2)
1) By the belt and collar
2) To celebrate your victory
Re: (Score:3)
Re:Everyone is a moron to someone.... (Score:5, Interesting)
There's some good stuff in Linux. But damn it's an unreadable mess in so many places. I like looking at BSD based code because it is so often much more straight forward and easier to understand.
So where in the open source world are there regular code reviews with thought out discussions about how to write code better, how to follow the correct style guidelines, pointing out "oh by the way, you're using BUG_ON() the wrong way", and stuff like that?
Re: (Score:3)
So where in the open source world are there regular code reviews with thought out discussions about how to write code better, how to follow the correct style guidelines, pointing out "oh by the way, you're using BUG_ON() the wrong way", and stuff like that?
I really would like to know too. I write device driver for internal use, but I'll be torched down if I try to get them accepted in the kernel because there are so many things in them that I don't know how to do the 'correct' way.
Re: (Score:2)
I've been coding for about 30 years now, a bit longer actually. Something that's become apparent over the years is that there ought to be a law of conservation of complexity. You can abstract and then re-abstract, you can use well-known design patterns, you can write defensively, and you can document until the cows come home. All of these help, they help by spreading out the complexity onto a larger surface - it becomes less opaque as it gets "thinner", the more it spreads out.
However, it remains the case t
Re: (Score:3)
Well mostly people who are too ignorant about software development to know that there is no such thing as a significant codebase in which that isn't the case. Clearly you have no software development skills or experience. Off you go ....
Re:I want to be reincarnated as Linus Torvalds (Score:5, Funny)
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!
Re: I want to be reincarnated as Linus Torvalds (Score:5, Funny)
The download takes awhile, which is the perfect time to go to the forums and declare your superiority.
Re:I want to be reincarnated as Linus Torvalds (Score:5, Insightful)
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.
Re: (Score:3)
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)
Re:I want to be reincarnated as Linus Torvalds (Score:5, Insightful)
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.
Re: (Score:2)
Which is relevant how?
Re: (Score:2)
Re: (Score:2)
Amazon begs to differ.
Re: (Score:2)
Oh, is it Unix compatible now?
Re:I want to be reincarnated as Linus Torvalds (Score:5, Insightful)
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.
Re: (Score:2)
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)
The OS has his name on it, heaven forbid he wants it to be good.
Move to BSD (Score:2)
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
Re: (Score:2)
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.
Re: (Score:3)
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.
Re: (Score:2)
Ever heard of penis envy? Well you have the Torvolds variant.
Re: (Score:2)
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."
Re: (Score:2)
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.
Re: (Score:2)
Re: (Score:2)
never explain. :)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
He may even be one of Hillary's Deplorables!!!
Re: (Score:2)
Re: (Score:3)
"there is NO EXCUSE to knowingly kill the kernel" (Score:5, Insightful)
Re: (Score:2)
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".
Re:"there is NO EXCUSE to knowingly kill the kerne (Score:5, Informative)
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.
Re: (Score:3)
"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."
Re: (Score:3)
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]:
So... (Score:2, Insightful)
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.
Re: (Score:2)
Just remove it then (Score:5, Interesting)
Overlord issues 'BUG_ON() considered harmful' edict 14 years ago and only now thinks about removing said anti-feature?
Re: (Score:3)
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
Re:Just remove it then (Score:5, Insightful)
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.
Re: (Score:3)
"Goto considered harmful" was written in an era when structured programming was extremely rare. It in no way at all invalidated the use of goto. When you're using C, you don't have all the features that the millenial kids demand. And there is yet to be a good language that replaces C, so we're stuck using goto in some cases just to have more readable code than the alternative.
But the anti-goto is so entrenched now that some people refuse to even use "continue", "break", or even mutiple returns from a fun
worse crime (Score:2, Funny)
Poor tact but right reaction (Score:5, Interesting)
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.
Re:Poor tact but right reaction (Score:4, Informative)
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)
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).
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Except Linus didn't do that, you ignorant, and likely illiterate, shit head.
Not apoligizing (Score:5, Insightful)
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)
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)
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)
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.
Re: (Score:2)
Re: (Score:2)
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.
Re: (Score:2)
Re: (Score:2)
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".
Re: (Score:2)
This BUG_ON thing .... (Score:5, Informative)
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.
Re: (Score:2)
Re:This BUG_ON thing .... (Score:4, Informative)
You Tell'em Linus. (Score:5, Insightful)
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.
Re:You Tell'em Linus. (Score:4, Interesting)
I'd revoke all my posts in this thread to mark this up...
Re: (Score:3, Funny)
But it's so anti-feminine to use curse words. It turns women away from computer engineering.
Re: (Score:2)
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.
Re:You Tell'em Linus. (Score:4, Insightful)
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.
Re: (Score:2)
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.
Re: (Score:2)
Re: (Score:2)
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.
Re: (Score:2)
There are lies and there are DAMN lies.
Re: (Score:2)
i've been coding professionally for 20+ years and i've never once had to use profanity or murder to accomplish my goals [...]
Then you have weak goals. My goal is "World Domination" and I'll swear at or kill anyone who gets in my way. That's how things get done, Mister!
(Yes, I'm being facetious.)
Improved feelings of self-worth (Score:2)
Asshole genius (Score:2)
Re: (Score:3)
A strange story (Score:2)
Re: (Score:3)
Wow, so it was Nixon who started using BUG_ON() wrong?
Bet it was that slimy rat Kissinger. I never trusted his patches.
Re: (Score:2, Informative)
Hitler proved it was, got a whole nation to follow him
Re: (Score:3, Insightful)
The corporate fascists running this country don't care whether you vote for the buffoon or the crook, really doesn't matter
Re: (Score:2, Interesting)
The Corporate Fascists want a stable and predictable economy in which the rules are well understood and consistent. They also of course want anything they can get for free and also want a pony. Most of the Corporate Fascist Interests perfectly overlap with most of the population.
Obviously we need to be diligent in ensuring that they don't get everything they want for free but it's completely wrong to say that they prefer the buffoon to the crook. The "crook" is accused of storing a few documents that s
Re: (Score:2)
(1 - 99.9999999999999999999999999999999999999%) of the mass of the earth is of the order of 10^-16 kg, that's a lot less than Clinton's email server weighs. If you consider the "world" to be the mass of the observable uinverse, that proportion would be about the mass of a large-ish comet,
Re: (Score:3)
If you'd been at the end of "Torvald's rampant verbal abuse" for 15 years, you'd have been banned from submitting to the kernel about 14.5 years ago. So, really, it wouldn't be an issue.
Re:He is almost 50! (Score:4, Insightful)
Ya, all those young programmers that don't know about 15 year old discussions on the use of the BUG_ON macro etc., so they keep re-inventing the square wheel...that'll fix things!
Sometimes AC's say the stupidest shit.
Re:He is almost 50! (Score:5, Informative)
I understand that this is a troll post but, it still makes me laugh. Software guys over the age of 40 are a pain in the ass to work with because they've seen so much idiocy over their careers that they can spot it immediately and point it out. If you are in your 20s and working with other people in their 20s, the echo chamber you live in is certainly re-affirming but, not particularly conducive to writing good software.
Re: (Score:2)
Oh, yes. And the young ones never understand that you really can spot it right away and keep arguing. The better ones come some time later and apologize because they have seen it as well, but it is still a pain how young people keep insisting on being stupid.
Re:Happens with the older guys too (Score:4, Interesting)
Sure, an ideal software team is basically:
- 1-2 grumpy old guys who are mostly just trying to steer the project away from disaster.
- A couple guys a bit younger than that who are less jaded than the grumpy old guys but, kinda get where they are coming from and so genuinely think about the code they are writing.
- A couple of young guys that just finished a C++ book and enthusiastically want to use templates everywhere.
That's a software team that can get shit done. And, probably won't be using the excuse of "refactoring" to rewrite it in six months.
Re: (Score:2)
When a kernel is released, it's *very* unlikely that it will see any use in a major distribution for 6 months to a year. And, by that time, it will be several revisions beyond the initial release. How does that compare to your dev/staging/production environment?
Thought so...