Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Genny 15. 09. 2011, 10:03:02

Název: Memory map file problem
Přispěvatel: Genny 15. 09. 2011, 10:03:02
Ahojte,
  mam RHEL 5.0, linux 2.6.18 kernel version, v produktu ktery namapuje nekolik gigabajtovych filu do pameti a pak s nimi pracuje se objevuji chyby. Z niceho nic se objevuji v techto souborech bloky null (treba i nekolik detikem megabajtu v kuse). Objevuje se to treba po nekolika dnech silneho provozu nad temito soubory. Zatim se nezda ze by si to produkt delal sam (stale investiguji), nicmene chci i zjistit jestli naaahodou nekdo nebyl svedkem podobneho issue (vim ze neco kdysi bylo s NFS ale mi to dela i na lokalnim disku). Nevite nekdo o tom neco ? :)

Diky,
Genny.
Název: Re: Memory map file problem
Přispěvatel: Sten 15. 09. 2011, 10:13:00
NULLy se typicky objevují za koncem souboru nebo pokud někdo ten soubor promaže (truncate). Nedochází ke změnám těch souborů během toho, kdy jsou mapované?
Název: Re: Memory map file problem
Přispěvatel: Genny 15. 09. 2011, 10:55:14
Ano urcite se do nich zapisuje ,ale delka souboru je porad stejna (musi byt z hladiska navrhu struktury uvnitr) ...
Název: Re: Memory map file problem
Přispěvatel: Sten 15. 09. 2011, 11:11:35
Záleží, jak se do nich zapisuje. Pokud je to pomocí mmap a msync, pak tam nebude problém, ale pokud to je pomocí write, můžou tam při špatném použití (truncate místo lseek ap.) nastávat problémy.
Název: Re: Memory map file problem
Přispěvatel: Genny 16. 09. 2011, 12:34:54
pise se primo do namapovane pameti. takze o zapis do souboru se stara system. Mno, nicmene je velice divny - objevuji se nam tam i 400MB velke bloky null. A vzdy jen v one namapovane casti pameti. Zjistime to az tak ze produkt detekuje nekonzistenci a ukonci se. Nicmene kdyby si tam onen proces nahodne psal do pameti sam tak by sem tam zapsal i mimo onu pamet a byl by videt seg fault. Ale to nenastava... memsety na nulu obsazene v kodu to nedelaji. ty jsou zkontrolovane..