Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia Tuesday TopDrive KupDnes Navrcholu Bomba NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Vlákno názorů ke zprávičce Ext4 pomohlo odhalit „špatně“ napsané aplikace

uživatel si přál zůstat v anonymitě
12. 3. 2009 15:15

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

A v čem konkrétně jsou tedy ony aplikace špatně napsané? Co by měly udělat jinak, aby jim nehodil filesystem koš na hlavu?
Adam Štrauch aura:99
12. 3. 2009 15:24

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

"Špatně" jsem dal do uvozovek. Tohle opravdu není jednoznačné. Podle mě by ale aplikace při přepisu souboru rozhodně neměli ten starý mazat. Možná by se dalo argumentovat výkonem, ale to je věc FS a ne aplikace.
Tosuja
Tosuja (neregistrovaný)
12. 3. 2009 15:28

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

Nemazat. Kdyby svoje konfiguraky prepisovaly, bylo by to bez problemu. Je samozrejme otazka, jestli je to chyba aplikace, nebo filesystemu. ja bych to spis hazel na filesystem, protoze jde o tweak fs kvuli rychlosti.
Michal Kára
Michal Kára (neregistrovaný)
12. 3. 2009 16:10

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

Pokud to chapu dobre, tak jde o to, ze aplikace vytvori novy soubor, zapise do nej konfiguraci, a pak jej prejmenuje na misto stareho souboru. To je casto pouzivana technika na UNIXech, protoze semantika UNIXovych FS v tomto pripade zarucuje (nebo alespon doposud zarucovala), ze v pripade padu systemu v souboru bude BUD cela stara NEBO cela nova verze. Proste soubor bude konzistentni. Totez plati pro pad aplikace.

Pokud byste prepisovali primo stary soubor, mohlo by se stat, ze system/aplikace spadne v pulce zapisovani a v souboru bude polovina dat z nove verze a polovina ze stare => bude nekonzistentni a nejspis k nicemu.

Pokud pod ext4 toto nefunguje, tak to vidim jako jednoznacny bug FS.
uživatel si přál zůstat v anonymitě
12. 3. 2009 16:19

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

Presne takhle to funguje .... prepisuje se stary, i kdyby se mazal, tak je to jedno, ty data tam fyzicky na disku jsou a nulama se to nemaze. Jde o to, ze kdyz system padne v pulce zapisu 5MB konfiguraku, tak jsi v prdeli a existuje vysoka sance, ze te ceka kompletni reinstal systemu, coz je skoro smesne, ale je to tak ...
nejlip se to vyzkousi treba na vmwaru, kde priblizne v 50% kdyz se takhle linux natvrdo zabije, tak uz nikdy bez problemu nenajede (vetsinou treba Xka, serou se aplikace atd).
Windows takhle zabijim ve vmwaru 5x denne a doposud nikdy sebemensi problem ... ze by snad ten princip DB s zurnalem pro konfiguraci - registry, nebyl az tak spatny?:o)
Michal Kára
Michal Kára (neregistrovaný)
12. 3. 2009 17:19

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

??? vzdyt prave pisu, ze se stary neprepisuje, ale vytvori se novy a udela se rename.

Timhle se da pekne udelat transakce ("vsechno nebo nic") na urovni FS. A hodi se to nejen kvuli padum, ale pokud chcete menit soubor, ktery nejaka jina aplikace periodicky otevre-precte-zavre. Vytvorite novou verzi a pak udelate rename a mate zajisteno, ze aplikace precte bud starou, nebo novou verzi. Na Windows tohle nefunguje a obcas mi to docela chybelo.
Lael Ophir
Lael Ophir (neregistrovaný)
16. 3. 2009 15:54

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

Tady je problém v té delayed allocation. Při vlastním zápisu se na disk nezapíše nic. Může dojít ke stavu, kdy vytvoříte soubor A, zapíšete do něj, smažete soubor B, dojde k havárii, ale soubor A po restartu neexistuje díky delayed alokaci. Linux je na podobné věci náchylný. Byl to tuším RFS, u kterého se stávalo, že thread A vytvořil soubor, dostal zpátky handle, thread B se snažil do souboru zapsat, a zápis selhal, protože soubor podle RFS ještě neexistoval. A pokud si vzpomínám, "opravovalo" se to úpravami aplikací (konkrétně MTA). Při návrhu se holt musí uvažovat :/

O kus vedle jsem popisoval, že Windows Registry má transakční mechanismus, takže každá hodnota v Registry bude obsahovat buď novou, nebo starou hodnotu. V případě Linuxu můžete přijít o celý konfigurák.
Mi. Chal. aura:32
12. 3. 2009 18:20

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

jenze windows se argumentovat neda - oni totiz evidentne ty registry na disk zapisuji nekdy pri odhlaseni uzivatele nebo vypnuti systemu. Pokud se do nich neco zapise a natvrdo resetujes system, tak po dalsim bootu tam ty zapsane informace proste nejsou. Jinak si nedokazu vysvetlit to, ze kdyz neco nainstalujes a pak se ti resetne pc, tak ta aplikace se tvari jako ze neni nainstalovana. Nebo jsme na jednom serveru zmenili regionalni nastaveni, pak se ty wokna musely natvrdo resetovat (cely to zatuhlo nebo uz nevim proc), kazdpopadne po restartu tam bylo zase to stare nastaveni a clovek to mohl prenastavit znovu.
Lael Ophir
Lael Ophir (neregistrovaný)
16. 3. 2009 15:55

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

Kdepak při odhlášení uživatele. Registry mají žurnál, takže případně dojde k rollbacku.
Mi. Chal. aura:32
16. 3. 2009 17:53

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

Me jako uzivateli je uplne jedno, jestli maj zurnal nebo ne. Me zajima to, ze kdyz se wokna nekorektne ukonci treba pri vypadku elektriny, tak proste v tech registrech ty zmeny (co jsem udelal treba pred pul dnem) nemam, coz je na hlavu.
uživatel si přál zůstat v anonymitě
16. 3. 2009 18:34

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

A máte vyzkoušené, že se změny do Registry zapsaly? Je dost možné, že se nastavení změnilo jen v aplikaci, a do Registry se zapíše až v případě ukončení té aplikace.

Řeč byla ale primárně o tom, že u Ext4 dochází ještě častěji k tomu, že se konfigurace úplně ztratí. To se vám ve Windows opravdu nestane. Když zapíšete hodnotu do Registry, a dojde k přerušení napájení, tak tam po rebootu najdete buď starou hodnotu, nebo novou. Určitě se nestane, že by vám kvůli tomu odpadnul daný klíč (tj. node stromu) Registry.
Mi. Chal. aura:32
16. 3. 2009 21:52

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

Jiste ze se to tam zapise. Co bys asi chtel ukoncovat po dobehnuti instalace nebo po nastaveni neceho v regionalnim nastaveni
Ash
Ash (neregistrovaný)
13. 3. 2009 0:16

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

Registry sem netahat! Je jedno jestli má konfigurák 5M nebo 1B, když s vytvoří nový a pak změní jméno na původní, tak je velikost irelevantní. To aby tam alespoň jedna z verzí souboru zůstala je věc žurnálu FS.
Eda
Eda (neregistrovaný)
13. 3. 2009 7:42

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

Ne to není věcí žurnálu, žurnálují se metadata ne data (to nikdo nepoužívá)!
c3
c3 (neregistrovaný)
12. 3. 2009 17:01

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

a nejde tam spis o to ze nekdo nepouziva fsync a pak se divi ze se data nezapsala fyzicky na disk? to same se stane na ext3 pokud se s padem trefite mezi defaultni 5sec commit ....
tukan
tukan (neregistrovaný)
12. 3. 2009 17:57

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

Presne tak, aplikace cekaji, ze se samo od sebe stane neco, co jim nikdo nezarucuje. Pokud to chteji, maji moznost si to explicitne vyzadat. Co jsem videl ty scenare, pri kterych to nastava, tak to bylo vzdy spatne naprogramovane. Nefungovalo to spravne ani dosud, jen to casove "okenko", kdy se to mohlo projevit, bylo mensi a tak to tolik nevadilo.
Voty
Voty (neregistrovaný)
12. 3. 2009 18:01

RE: Ext4 pomohlo odhalit „špatně“ napsané aplikace

Ano, je to nepoužitím fsync(). ext3 se v tomhle ohledu chovalo obyčejně "lépe" než POSIX požaduje a spousta lidí si na to zvykla.
Zasílat nově přidané příspěvky e-mailem