Régóta bujkáló memóriakorrupciós hiba került javításra; mára várható a végleges 2.6.25

Címkék

Molnár Ingo bejelentette az LKML-en, hogy egy, a Linux kernel sparsemem támogatásával összefüggő, régóta fennálló memóriakorrupciós hibát sikerült végre javítania. A bug - függően a kernelkonfigurációtól (!PAE), a kernelt futtató rendszer kiépítésétől (x86, > 4GB RAM) és egyéb paraméterektől - bizonyos esetekben rendszerösszeomlást, helytelen működést okozhat. Ingo szerint a bug egyidősnek tűnik a Linux kernel sparsemem támogatásával, amely először a 2.6.16-os kernelben mutatkozott be. Linus szép munkának nevezte Ingo bugvadászatát, és jelezte, hogy várhatóan ma kiadja a végleges 2.6.25-ös kernelt. Részletek a KernelTrap cikkében.

Hozzászólások

:)

---
pontscho / fresh!mindworkz

Csak annak, aki követi a commitokat... Azok a disztribúciók simán beszívhatják, akik a CVE vagy a bugtraq alapján javítják a hibákat. Ez igazából a veszélye az egésznek, meg az, hogy azok az adminisztrátorok is megjárhatják, akik a security oldalakon feltüntetett hibák után frissítik csak a rendszereiket. Ha ezt globálisan nézzük és úgy vesszük, hogy máshol is ez a maszatolás megy (és ez sajnos így van), akkor admin legyen a talpán, aki minden egyes userland programnak is nyomonköveti a fejlesztését és meg is tudja állapítani, hogy melyek azok a hibák, amelyeket a fejlesztők nem gondoltak kritikusnak és mégis azok.

Szóval sok esetben nincs is szükség valódi 0day bugokra a haxoroknak, elég csak figyelni a fejlesztéseket és a csendben javított hibákat szépen kihasználni a megcélzott rendszereken...

Szólj ha kész egy komplett ilyen rendszer kernel+userland szinten és teljesen automatikus. (Egyébként mi van akkor, ha bootol a kernel a virtuális gépben, de a fizikai vason nem, vagy csak pár perc után crashel? Userland-ről és az egymástól függő programokról már nem is beszélve... :)

Legrosszabb esetben egy hét alatt összerakom.
Mi kell hozzá:
- minimum két PC, az egyiken távmenedzsment, amiről legalább egy resetet ki tudok adni
- az egyik PC a másikról bootol, az egyiken fut a monitorozás a másikra
- egyik PC minden éjszaka lehúzza a teh_latezt_leenu.gz-2.6.25-pre5alpha2torvaldz8bestest.torrent-et (vagy .git-et, vagy mit használnak ezek ott fent), lefordítja, majd bekopizza a tftp rootjába és beállítja a pxeloadert
- eljön a hajnali kettő, másik pécé rebootol, elindul az új kernellel
- egyik pécé nézi valahogy (nekem mindegy hogy) a másikat, ha adott ideig nem kap életjelet, új kernel letöröl, pxeloader visszaállít az előzőre, reset, esetleg a virtuális soros konzolon kiböfögött üzenetekkel megspammelni a leenus@torvardz.com-ot
- másik pécé magához tér, beröffen az előző kernellel, boldog

Értelemszerűen, ha a kernel képes volt a bolonyaimakaróniból és legalább az init-ig eljutott, azaz már a userspace is szóhoz jutott, az egyik pécé a szofisztikált alkalmazásmonitoringgal folyamatosan figyeli, hogy vajon rendben van-e minden, esetleg még a válaszidőket is nézi és ha azok nevetségesen alacsonyak, akkor az aznapi forgalomdumpot küldi a fent említett címre, a kitömörített kernel image-dzsel együtt.

Namost ha kötözködnél és megkérdeznéd, hogy OK, de mi van akkor, ha a bolonyaimakaróniból kerülne a diszkekre is és azok emiatt csúnyák, zsírosak és darált marhahúsosak lennének, ahelyett, hogy az igen fontos -hiszen ilyen rendszert csak igen fontos alkalmazás alá tennék, nehogy feltörjék- adatok lennének ott, hát megoldásom erre is van.
Óránként, vagy ahogy a pénztárcám mélysége engedi snapshotolnék fájlrendszert (a storage-on persze, mert azon nem leenugz fut, tehát nem érintett ezekkel a hibákkal), majd ha kefe van a másik gépen, az egyik gépen kikapcsolnám a másikat, majd felhúznám szépen sorban a snapshotokat és az alkalmazás megfelelő alkalmazásával ellenőrizném az alkalmazásadatok alkalmazhatóságát.
A legutolsó alkalmazható alkalmazásadatot pedig alkalmaznám, mint alkalmazható alkalmazásadat, a többit eldobnám, effektíve egy rollbacket csinálnék, majd ha ez megvan, visszaváltanék a tegnapi kernelre, majd poweron() a másik gépen és minden jó.
A rendszergazdát kirúgnám, hiszen rá nincs szükség, a béréből pedig... Hát nem is tudom. Annyira nem fizetem meg, hogy bármire is elég lenne a pénze.

Én is örülök, hogy egy hazánkfia megfogott egy más által okozott, marha nehezen előhozható (csak olyankor jön elő (de akkor se mindig), ha 4GB-nál több fizikai memóriával rendelkező x86 gépen !PAE kernelt futtat valaki - ez ugye rendkívül "gyakori") bugot. Normális ember ilyen konfigon PAE kernelt futtat, szóval nem csoda, ha eddig bujkált. Majdnem kizárt, hogy !developer ezzel a problémával találkozott volna. :)

--
trey @ gépház

És gondolom a PAE mindegyiken ki van kapcsolva ;), hogy a 128GB-ból csak 4-et láss. Vagy én tévednék, és a PAE nem azért kell, hogy x86 gépen lehessen 4GB-nál több fizikai memóriát is címezni?
A PAE az a 32bites rendszereknél bővíti ki a címteret 36 bitesre. 64bit esetén nem kell PAE. Gondolom bra is 64bites konfigokról beszélt, hiszen a 36bites címtér csak 64gb megcímzésére elég.

Értettem én hogy próbáltad az x86-ot összemosni az x86_64-gyel, de ebben a topikban - még ha egyébként sok közük is van egymáshoz - kár lenne, mert memóriakezelés szempontjából lényeges különbségek vannak köztük. Éppen ezért idecitálni az x86_64-et értelmetlen. :)

--
trey @ gépház

Enterprise FreeBSD-t, meg naponta pörgetett opensolarist (csak a linugzos kollegák megnyugtatása végett) a nagyteljesítményű, de kis dobozokon. Meg ezeknek az elődjeiből leszármazott egyéb őskövületeket a kisteljesítményű, de rendkívül nagy légköbmétereket elfoglaló dobozokon.

tippre ma este 7-kor érkezik helyi idő szerint a 2.6.25 :) (CEST 19:00:XX) :) akkor van mindig a frissítés a master gép és Linus gépe között :)

debian gnu/linux @ linux-2.6.22.22-opt1 | patch
info

egy darabig még fogom vinni, addig biztos, amig etch-et használok :) lenny-re meg akkor váltok (ha váltok) élesben. ha kijön stabilba, ameddig nem lesz stabil, addig az csak tesztrendeszer szinten marad, szóval egy darabig még lesz.
ha akarsz segíteni, akkor örömmel fogodom ;)

debian gnu/linux @ linux-2.6.22.22-opt1 | patch
info