Nou, dat was gênant. Linus Torvalds ‘eerste release-kandidaat voor de Linux-kernel 5.12 bevatte een show-stopping bug. Na het afsluiten van die release heeft Torvalds een nieuwe versie van 5.12 gelanceerd, die de fout niet bevat.

Door Steven J. Vaughan-Nichols | ZDNet

Deze week bracht Torvalds de eerste release candidate van de nieuwste Linux-kernel 5.12 de deur uit. Dat bleek een echte vergissing te zijn. De release, die alleen bedoeld was voor mensen die de Linux-kernel testen op bugs, bleek al eeuwenlang een bug te hebben die testsystemen zou vernielen. Nu is het opgelost.

Wat er gebeurde, zoals Torvalds uitlegde op de Linux Kernel Mailing List (LKML), was een “dubbele fout“, die het bestandssysteem van een computer zou kunnen vernietigen.

Deze blunder, zei Torvalds, begon met “een zeer onschadelijke code-opschoning en vereenvoudiging die helemaal geen rode vlaggen opleverde, maar [het] had een subtiele en zeer vervelende bug in zich: Swap-bestanden werkten niet meer goed. En ze stopten met werken in een bijzonder slechte manier: de offset van het begin van het wisselbestand ging verloren. Het wisselen gebeurde nog steeds, maar het gebeurde met het verkeerde deel van het bestandssysteem, met de overduidelijke catastrofale eindresultaten. ”

Oeps!

Met andere woorden, als je de release candidate-code zou draaien en je geheugen tekort kwam, zou je computer doen wat hij moest doen en inactieve gegevens en programma’s naar het wisselbestand schrijven. Tot nu toe zo goed. Dat gebeurt elke seconde van de dag op drukke Linux-systemen. Hier werden de gegevens echter bovenop uw bestaande bestanden geschreven, in plaats van veilig naar het wisselbestand te worden geschreven. Dus met deze bug kan uw computer binnenkort volledig tot stilstand komen.

Of, zoals Torvalds het uitdrukte, “je kunt eindigen met een bestandssysteem dat in wezen wordt overschreven door willekeurige wisselgegevens. Dit is wat wij in de branche ‘dubbel ongoed’ noemen.” Dat is zeker!

Torvalds vervolgde: “Het was niet echt een erg voor de hand liggende bug, en hij kwam niet eens voor tijdens normale tests, precies omdat swapfiles gewoon niet normaal zijn. Dus ik geef de ontwikkelaars in kwestie niet de schuld, en dat was ook niet het geval. ‘t vanwege de vreemde timing van het samenvoegvenster, was het gewoon een ongewoon vervelende bug. ”

De master Linux-ontwikkelaar wilde dat iedereen op de hoogte was van deze bug, want hoewel “rc1 de neiging heeft om buggieriger te zijn dan latere rc’s, zijn we daar allemaal aan gewend, maar eerlijk gezegd zijn de bugs meestal veel kleinere ergernissen dan deze keer.”

Torvalds waarschuwde “de meeste van onze rc1-releases zijn in de loop der jaren zo solide geweest dat mensen misschien zijn vergeten dat ‘ja, dit is allemaal de nieuwe code die vervelende bugs kan bevatten’.”

Het meest verontrustende van alles is dat sommige mensen er zo aan gewend zijn geraakt dat rc1 meestal betrouwbaar is dat ze tegen zichzelf zeggen “‘Ok, rc1 is uit, ik heb al mijn ontwikkelingswerk in dit samenvoegvenster gekregen, ik ga nu snel vooruit naar rc1 en gebruik dat als basis voor de volgende release. ‘ Doe het deze keer niet. Het kan heel goed voor je werken omdat je de gemeenschappelijke partitie hebt ingesteld, maar het kan uiteindelijk een vreselijke basis worden voor iemand anders. ”

Dat bleek bij Intel het geval te zijn. Intel heeft RC1 gebruikt in zijn grafische continue integratie (CI) -systemen. Het resultaat? Vernietigde bestandssystemen. Auw!

Om dit allemaal op te lossen, heeft Torvalds de broncode van de volgende uitgave, Linux 5.12-rc2, vroegtijdig naar buiten gedrukt. Dit kwam voornamelijk door het ruilprobleem. Vooruitgaan zou goed moeten komen.

Maar beschouw dit als een eerlijke waarschuwing. Een release candidate is, nou ja, een release candidate. Je zou het niet op productiesystemen moeten gebruiken. Het komt zelden voor dat er dingen fout gaan met een Linux-rc, maar, zoals dit geval maar al te pijnlijk laat zien, kan het gebeuren.

 

Lees dit artikel in zijn volledigheid op ZDNet.com