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