segv pri pristupu ke konkretnimu souboru
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Sobota Květen 20 16:41:13 CEST 2006
On Tue, 16 May 2006, Vlada Macek wrote:
> Jakykoli proces snazici se stat()nout nebo cist jeden konkretni malicky
> obycejny soubor (ve kterem se nachazelo jen jedno cislo) dostane SEGV a
> kernel vypise neco takoveho:
>
> May 15 15:01:33 sandbox kernel: Unable to handle kernel paging request
> at virtual address e0a8c548
[...]
> May 15 15:01:33 sandbox kernel: EIP:
> 0010:[link_path_walk+1354/2224] Tainted: P
Kontrolní otázka: ls na adresář, kde se ten inkriminovaný soubor nachází,
projde? A co ls -l?
> Obavam se, ze je to hw problem. Jine soubory v tom adresari to nedelaji.
> fsck jsem jeste nepoustel, bojim se, co by provedl. Smazat jsem to
> nezkousel ze stejneho duvodu.
Ten adresář nebo možná dentry či inode toho souboru nějak "kreativně"
nabořený. Přetrvává to i po rebootu? Občas se může stát, že se rozbijou
data jen v paměti (může to být chyba sw, chyba hw, nebo prostě jen
smůla, že skrz nevhodnou oblast prostoročasu proletěla nabitá částice;
také by to v principu mohl být vedlejší efekt úplně jiné poruchy
v jádře).
Můžete zkusit ruční inspekci toho souboru přes debugfs, jestli na něm
nebude něco divného, ale v konečném důsledku se asi fsck nevyhnete.
I když jestli se bojíte, tak byste měl zvážit vyrobení zálohy (nejlépe
přes dd).
Nicméně jestli je to rozbořené na disku (což se projeví tak, že to bude
přetrvávat i po rebootu), pak je chyba v implementaci fs, že to správně
neošetřila, a bylo by vhodné to lépe diagnostikovat a nahlásit na patřičná
místa.
--Pavel Kankovsky aka Peak [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."
Další informace o konferenci Linux