Portál AbcLinuxu, 30. dubna 2025 11:29
Už po několikáté se mi na Gentoo stalo, že se psi otevře v čistém stavu bez nastavených účtů. Je to verze 0.15 a mám dojem, že psi v dnešní době není na Gentoo nějak extrémně patchované. Podobně nejspíš ještě pořád ztrácí data i taskwarrior.
Díval jsem se do domovského adresáře a hledal k tomu info na webu. Moc jsem toho nenašel, akorát adresář ~/.psi
je zřejmě stará nepoužívaná lokace. Takže by měla být konfigurace v ~/.config/psi
. Konkrétně .config/psi/profiles/default/accounts.xml
je úplně prázdný soubor.
Vzpomněl jsem si na dobu, kdy se pořád mluvilo o problémech filesystémů, které končily prázdnými soubory a nakonec se ukázalo, že se jedná o chybu aplikace. Typicky to fungovalo tak, že aplikace otevřela pro zápis soubor s potřebnými daty, čímž vymazala jeho obsah a pak děj se vůle boží. Buď se do souboru zapíše nová verze dat, nebo se nezapíše.
Na důvodu až tak nezáleží, pokud se nebavíme o četnosti výskytu následků. Problém je v tom, že je aplikace vůbec naprogramována tak, že si pod sebou podřeže větev a teprve dodatečně situaci napravuje novým zápisem a v lepším případě i uzavřením souboru. V mezidobí nejsou data na disku uložena vůbec. U hodně špatně napsaných aplikací může být mezidobí dost dlouhé.
Přitom není nic jednoduššího než zapsat do stejného adresáře data do dočasného souboru a ten pak přejmenovat. Přejmenování je ve většině případů atomické, v těch ostatních pokud vím aspoň nedestruktivní. Samozřejmě se najdou i technicky lepší techniky, ale tohle je tak jednoduché, že mě vždycky mrzí, když někdo nepoužije ani to.
Nápady, názory?
Tiskni
Sdílej:
V KDE sa mi to stávalo bežne. V psi ani raz, ale v gentoo používam opatchované psi+ z rion overlayu.
/sbin/reboot
, protože ten jenom zamrzne systém.
Ale na druhou stranu se mi čas od času stane, že nechám laptop bez napájení a umře. Nebo může z různých důvodů zamrznout systém. Takže bych radši, kdyby se aplikace staraly o své zápisy korektně a tyhle nepříjemnosti řešil až v druhé řadě.
Pomôže presne to, čo napísal v blogu. Stačí zapisovať do dočasného súboru, zatvoriť a premenovať (premenovanie je vďaka journalovacím fs atomická operácia, takže najhoršie čo sa stane je, že po štarte tam bude stará verzia).
Je to súčasťou štandardu POSIX. Journalovacie fs to spĺňajú za predpokladu, že tam nie je škaredý bug.
Raiser som tiež kedysi používal, ale potom som prešiel na XFS z ktorého som vyhodil pár blbostí okolo uzamykania.
Ono sa to zpíše do bafru a keď ti pri prepisovaní bafru na disk vytuhne komp, tak ti nepomôže nič.Co do toho pleteš buffery a sync? V blogpostu jsem popsal problém i jeho triviální a zároveň běžné řešení. Bavíme se o ztrátě dat, která byla už v minulosti bezpečně zapsána na disku, dost pravděpodobně v některém z předchozích běhů systému.
Neviem na čom teraz pracuješ a rád by som to vedel, ale používanie systemd na primárny vývoj je podľa mňa zbytočný a môžeš to testovať pred ostrím vydaním na extra partícií.Před časem jsem o tom uvažoval, ale došel jsem k závěru, že vývoj nad OpenRC nebo podobnou ptákovinou značně odlišnou od cílové platformy a následné testování, ladění a opravy nad systemd není pro moji práci obhájitelné. Navíc se systemd ke službám chová lépe než cokoli jiného, o OpenRC radši ani nemluvím.
Ja mám na desktope cca 5distier a v NTB s Atomom momentálne dve a miesto na ďalšie. Virtuál nepokladám za plnohodnotný testing distra.Já testuju podle potřeby. Většinou netestuju distribuce, ale velmi konkrétní věci a tak 99% z nich jde rovnocenně testovat na virtuálu.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.