Linus Torvalds fixes 'double ungood' Linux kernel bug | ZDNet
Linus Torvalds fixes 'double ungood' Linux kernel bug
Well, that was embarrassing. Linus Torvalds' first release candidate for the Linux kernel 5.12 included a show-stopping bug. After shutting down that release Torvalds has launched a new version of 5.12, which doesn't include the mistake.
Steven J. Vaughan-Nichols
By Steven J. Vaughan-Nichols for Linux and Open Source | March 9, 2021 -- 20:08 GMT (20:08 GMT) | Topic: Enterprise Software
It wasn't an ordinary week at Linux creator's Linus Torvalds house in Portland, OR. A snowstorm had knocked out power to Torvalds' home for the better part of a week. Despite that, Torvalds still got the first release candidate of the latest Linux kernel 5.12 out the door. That turned out to be a real mistake. The release, which was meant only for people who are testing the Linux kernel for bugs, turned out to have a bug for the ages, which would wreck test systems. Now it's been fixed.
OPEN SOURCE
Linux Foundation announces new open-source software signing service
Top open source, tech-smart, board-ready women executives
Red Hat's survey results on the state of enterprise open-source software
The open-source RISC-V is prompting chip technology breakthroughs (ZDNet YouTube)
Top five open source Linux server distributions (TechRepublic)
What happened, as Torvalds explained on the Linux Kernel Mailing List (LKML) was a "double ungood" mistake, which could wipe out a computer's filesystem.
This blunder, Torvalds said, started with "a very innocuous code cleanup and simplification that raised no red flags at all, but [it] had a subtle and very nasty bug in it: Swap files stopped working right. And they stopped working in a particularly bad way: the offset of the start of the swap file was lost. Swapping still happened, but it happened to the wrong part of the filesystem, with the obvious catastrophic end results."
Whoops!
In other words, when you'd run the release candidate code and you ran out of memory, your computer would do what it was supposed to do and write idle data and programs to the swap file. So far, so good. That happens on busy Linux systems every second of the day. Here, though, instead of being written safely to the swap file, data was written on top of your existing files. Thus, with this bug, your computer could shortly come to a complete and utter stop.
Or, as Torvalds put it, "you can end up with a filesystem that is essentially overwritten by random swap data. This is what we in the industry call 'double ungood.'" That's for sure!
ZDNET RECOMMENDS
The best Linux Foundation classes
The best Linux Foundation classes
Want a good tech job? Then you need to know Linux and open-source software. One of the best ways to pick them up is via a Linux Foundation course.
Read More
Torvalds continued, "It really wasn't a very obvious bug, and it didn't even show up in normal testing, exactly because swapfiles just aren't normal. So I'm not blaming the developers in question, and it also wasn't due to the odd timing of the merge window, it was just simply an unusually nasty bug."
This is how employers can build meaningful health and wellbeing initiatives in 2021
Employee health and wellbeing is important for any business owner that wants to create a successful organisation.
Sponsored by AXA Health
The master Linux developer wanted everyone to know about this bug because while "rc1 tends to be buggier than later rc's, we are all used to that, but honestly, most of the time the bugs are much smaller annoyances than this time."
Torvalds warned "most of our rc1 releases have been so solid over the years that people may have forgotten that 'yeah, this is all the new code that can have nasty bugs in it.'"
Most troubling of all, some people have gotten so used to rc1 being mostly reliable that they say to themselves "'Ok, rc1 is out, I got all my development work into this merge window, I will now fast-forward to rc1 and use that as a base for the next release.' Don't do it this time. It may work perfectly well for you because you have the common partition setup, but it can end up being a horrible base for anybody else."
That turned out to be the case with Intel. Intel has been using RC1 in its graphics continuous integration (CI) systems. The result? Trashed file systems. Ouch!
Now, to fix all this, Torvalds has pushed out the next release's source code, Linux 5.12-rc2 early. This was primarily because of the swap problem. Moving forward all should be well.
But take this as a fair warning. A release candidate is, well, a release candidate. You shouldn't be using it on production systems. It's very rare for things to go wrong with a Linux rc, but, as this case shows all too painfully, it can happen.
Well, that was embarrassing. Linus Torvalds' first release candidate for the Linux kernel 5.12 included a show-stopping bug. After shutting down that release Torvalds has launched a new version of 5.12, which doesn't include the mistake.
Steven J. Vaughan-Nichols
By Steven J. Vaughan-Nichols for Linux and Open Source | March 9, 2021 -- 20:08 GMT (20:08 GMT) | Topic: Enterprise Software
It wasn't an ordinary week at Linux creator's Linus Torvalds house in Portland, OR. A snowstorm had knocked out power to Torvalds' home for the better part of a week. Despite that, Torvalds still got the first release candidate of the latest Linux kernel 5.12 out the door. That turned out to be a real mistake. The release, which was meant only for people who are testing the Linux kernel for bugs, turned out to have a bug for the ages, which would wreck test systems. Now it's been fixed.
OPEN SOURCE
Linux Foundation announces new open-source software signing service
Top open source, tech-smart, board-ready women executives
Red Hat's survey results on the state of enterprise open-source software
The open-source RISC-V is prompting chip technology breakthroughs (ZDNet YouTube)
Top five open source Linux server distributions (TechRepublic)
What happened, as Torvalds explained on the Linux Kernel Mailing List (LKML) was a "double ungood" mistake, which could wipe out a computer's filesystem.
This blunder, Torvalds said, started with "a very innocuous code cleanup and simplification that raised no red flags at all, but [it] had a subtle and very nasty bug in it: Swap files stopped working right. And they stopped working in a particularly bad way: the offset of the start of the swap file was lost. Swapping still happened, but it happened to the wrong part of the filesystem, with the obvious catastrophic end results."
Whoops!
In other words, when you'd run the release candidate code and you ran out of memory, your computer would do what it was supposed to do and write idle data and programs to the swap file. So far, so good. That happens on busy Linux systems every second of the day. Here, though, instead of being written safely to the swap file, data was written on top of your existing files. Thus, with this bug, your computer could shortly come to a complete and utter stop.
Or, as Torvalds put it, "you can end up with a filesystem that is essentially overwritten by random swap data. This is what we in the industry call 'double ungood.'" That's for sure!
ZDNET RECOMMENDS
The best Linux Foundation classes
The best Linux Foundation classes
Want a good tech job? Then you need to know Linux and open-source software. One of the best ways to pick them up is via a Linux Foundation course.
Read More
Torvalds continued, "It really wasn't a very obvious bug, and it didn't even show up in normal testing, exactly because swapfiles just aren't normal. So I'm not blaming the developers in question, and it also wasn't due to the odd timing of the merge window, it was just simply an unusually nasty bug."
This is how employers can build meaningful health and wellbeing initiatives in 2021
Employee health and wellbeing is important for any business owner that wants to create a successful organisation.
Sponsored by AXA Health
The master Linux developer wanted everyone to know about this bug because while "rc1 tends to be buggier than later rc's, we are all used to that, but honestly, most of the time the bugs are much smaller annoyances than this time."
Torvalds warned "most of our rc1 releases have been so solid over the years that people may have forgotten that 'yeah, this is all the new code that can have nasty bugs in it.'"
Most troubling of all, some people have gotten so used to rc1 being mostly reliable that they say to themselves "'Ok, rc1 is out, I got all my development work into this merge window, I will now fast-forward to rc1 and use that as a base for the next release.' Don't do it this time. It may work perfectly well for you because you have the common partition setup, but it can end up being a horrible base for anybody else."
That turned out to be the case with Intel. Intel has been using RC1 in its graphics continuous integration (CI) systems. The result? Trashed file systems. Ouch!
Now, to fix all this, Torvalds has pushed out the next release's source code, Linux 5.12-rc2 early. This was primarily because of the swap problem. Moving forward all should be well.
But take this as a fair warning. A release candidate is, well, a release candidate. You shouldn't be using it on production systems. It's very rare for things to go wrong with a Linux rc, but, as this case shows all too painfully, it can happen.