Neil Brown: csúnya md/raid bug

Címkék

Neil Brown, a Linux softraid réteg karbantartója, az mdadm segédprogram megalkotója blogbejegyzésében arra figyelmeztet, hogy valamikor a 3.4-rc1 és 3.4-rc5 között egy csúnya RAID bug került a mainline kernelbe. A bug ugyan nem pusztítja el az adatokat, de megnehezítheti az adatokhoz való hozzáférést.

A bug a "c744a65c1e2d59acc54333ce8" commit-tal mutatkozott be és a "30b8aa9172dfeaac6d77897c67ee9f9fc574cdbb" commit-tal került javításra. Mivel a bug a 3.4-es kernel fejlesztési ciklusa során mutatkozott be, kiadott végleges mainline kernel nem érintett. De mivel a bugot hozó patch hibajavításként érkezett, bekerült egyes -stable kernelekbe. Egyes disztribútorok szállítottak olyan kernelt, amely érintett a problémában. Például a SLES 11 SP2 3.0.26-0.7-es kernelében megjelent a hiba és a 3.0.31-0.9-ben került javításra. Az Ubuntu 12.04 LTS-ben a 3.2.0-22.35-ös kernellel érkezett a hiba és a 3.2.0-24.38-ban került javításra. Mivel más disztribútorok is beolvaszthatták a hibás patchet a saját kernelükbe, más disztribúciók is érintettek lehetnek.

A hiba csak akkor triggerelődik, ha a gépen shutdown/poweroff/reboot valamelyikét hajtjuk végre (akkor is csak bizonyos körülmények fennállásakor). Amíg a gép fut, addig a hiba egyáltalán nem jelentkezik, így arról csak a legközelebbi indításkor értesülhetünk. A hiba eredményeként a diszkeken tárolt metaadatokból fontos információk törlődnek.

Hogy hogyan lehet a problémát elkerülni, mit lehet tenni, ha a mennykő beütött, elolvasható itt.

Hozzászólások

Nem vagyok kernel fejlesztő, de a FIX felvet bennem egy kérdést. Azt jelentené, hogy ha egy bizonyos állapotban állítják le a tömbön az írásokat, akkor törlődnek a metaadatok? Írások leállításakor nem annyinak kéne történnie legrosszabb esetben, hogy megmarad valami régi adat? Valami másik kód direkt törli? Tényleg csúnya.

Szerk: elolvastam Neil írását, így már értem. Azért ez gáz, hogy kritikus metaadatokat írogatnak felül ok nélkül is.

--
joco voltam szevasz

Enterspájz, enterspájz!

A viccet félretéve, ez elég szomorú. Nem tesztelik kiadás előtt semennyire?

--
Java apps are nothing more than sophisticated XML-to-exception converters.

Egy durva adatvesztésem egy DS4300-hoz kötődik, amikor a certified mérnök on-the-fly rátolt' egy JBOD bővítőt a kontrollerekre - megmakkant mindkettő, eldobták a 2GB writeback cache-t, így kvázi az összes írt fájlrendszernek kampec lett. Valami olyat motyogott, hogy hát izé, túl régi volt a firmware, megesik. O_o