Diversity w polskim IT
Bulldogjob
Bulldogjob

Linus Torvalds łata “katastrofalny” błąd w 5.12 rc1

Linus wydał 5.12 rc2 wcześniej, niż zamierzał, ponieważ w poprzednim kandydacie do wydania znalazł się dosyć niebezpieczny błąd.
9.03.20213 min
Linus Torvalds łata “katastrofalny” błąd w 5.12 rc1

Linus Torvalds wypuścił drugiego Release Candidate do wersji 5.12 wcześniej, niż zamierzał, ponieważ okazało się, że w pierwszym znalazł się błąd, który, pomimo że “mały i subtelny”, to mógł wyrządzić w kernelu dotkliwe szkody. Właściwie to ten błąd był na tyle szkodliwy, że Linus oznaczył rc1 jako wydanie zupełnie niestabilne. Fiński programista ujawnił w jednym ze swoich wpisów, że chodzi o nieprawidłowe działanie plików wymiany - zgubiono offset na początku takiego pliku. Linus twierdzi, że wymiana pamięci nadal miała miejsce, ale działo się to w nieprawidłowej części systemu plików - a rezultat był według niego katastrofalny.

Powyższy błąd może spowodować, że system plików zostanie nadpisany przypadkowymi danymi wymiany - mówi Linus. To wszystko spowodowało, że Torvalds zmienił nazwę wydania w drzewie Git z v5.12-rc1 na v5.12-rc1-dontuse, mając nadzieję, że użytkownicy załapią, o co może chodzić.

Torvalds twierdzi, że w nowym kernelu wykonywano czyszczenie kodu oraz pewne operacje upraszczające, które same w sobie nie były w żaden sposób niepokojące, ale wywołały właśnie ten błąd. 

Linus uspokaja

Linus powiedział, że cała sytuacja jest niefortunna, ale broni pracy, która pozwoliła na przedostanie się błędu do Linuksa. Torvalds twierdzi, że błąd ten nie był aż tak oczywisty i, co więcej, nie pokazał się nawet przy standardowych testach. Dlatego nie stara się zrzucić winy na developerów, którzy pracowali w tamtym momencie nad kernelem - twierdzi on raczej, że był to po prostu niesamowicie wstrętny bug, który się po prostu przytrafił.

Linus nie omieszkał też wspomnieć, że błędy związane z plikami wymiany nie są aż takie straszne, ponieważ nikt i tak za bardzo z tych plików nie korzysta. Wspomniany wcześniej błąd przytrafia się jedynie wtedy, kiedy w normalnym systemie danych umieści się plik swap. 

Linus uspokaja dalej i mówi, że większość dystrybucji Linuksa korzysta z partycji wymiany, a nie plików. Pliki te są zazwyczaj o wiele wolniejsze od partycji i mają trochę problemów wynikających ze złożoności.

rc2

Właściwie to samo rc2 nie przynosi ze sobą zbyt wielu zmian, oprócz właśnie łatki, która naprawia wyżej wspomniany błąd. Torvalds mówi, iż ma szczerą nadzieję, że release candidate numer 2 będzie o wiele bardziej stabilny i używalny, niż „katastrofalna” jedynka. 

Z tego, co czytamy w notce, to w rc2 dominują sterowniki - głównie te związane z obsługą ASoC Intel SOF. Wykonano też tam trochę pracy związanej z btrfs, kvm, iscsi itd. 

Podsumowanie

Pomimo że Linus określił wyżej opisywany błąd jako „subtelny i mały” to był on jednak w stanie doprowadzić do zdemolowania całych systemów plików. W jaki sposób więc doszło do tego, że coś takiego w ogóle znalazło się w Kernelu? Ano Linus twierdzi, że historycznie release candidates do nowych wersji kernela były tak nieskazitelne, że nikomu nie przyszło do głowy, aby zwrócić uwagę na jeden mały błąd.


Skromnie.

<p>Loading...</p>