OOo a "hostname.(none)"

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Pátek Listopad 5 02:16:10 CET 2010


On Sat, 30 Oct 2010, Oto Buchta wrote:

> Nevím, [...] zda jste v jeho zdrojácích něco hledal.

Popsal jsem problém a uvedl přímo místo v kódu, kde vzniká.
Zkuste hádat, zda jsem při té příležitosti hledal ve zdrojácích. :)

> > Já osobně si ale myslím, že vytvářet nový thread, aby se "dramaticky
> > zrychlil start" lidem, kterým funguje blbě resolving,
> Pokud je pro správné chování programu pro zobrazování prezentací
> nutnou podmínkou korektní fungování sítě, tak to teda potěš klobás.

Dovolil bych tvrdit, že správná konfigurace počítače je taková, aby pro
zjištění vlastní identity opravdu po síti komunikovat nemusel (a vhodným
nastavením toho lze opravdu dosáhnout).

> Bezmyšlenkovitě implementovat IMHO zbytečné či dokonce nelogické chování
> (z těchto metadat přeci nelze usoudit (odhadnout ano, usoudit
> nikolivěk), že je či není vhodné IPC použít [...]

Tak jsem si to našel a podíval se na to (desktop/source/app/lockfile.*).

Ono se z toho nic o tom, zda "je či není vhodné IPC použít", neusuzuje.

Ten soubor slouží k zajištění exkluzivního přístupu k adresáři, kde má OOo
data pro daného uživatele (konfiguraci apod.). Existuje-li soubor, pak je
obsazeno, neexistuje-li, je volno. Není použito zamykání souborů, zřejmě
z toho důvodu, že to není vždy spolehlivé (slyšel jsem někoho volat
"NFS"?).

Z obsahu toho souboru se usuzuje, zda ho lze automaticky považovat za
pozůstatek po procesu, který chcípnul, aniž by ho odstranil. Kritérium je
to, že byl vytvořen na stejném počítači (proto se zjišťuje to plně
kvalifikované jméno; ony jsou občas domovské adresáře uživatelů na síti) a
proces, který ho vytvořil, fungoval jako IPC server (je tam schovaný
implicitní předpoklad, že už nefunguje, protože kdyby fungoval, tak by se
to k výrobě zamykacího souboru vůbec nedostalo).

> V Javě by se jednalo o přidání kódu na max. deset řádků (bez parametrů
> v plně funkční podobě bez řešení výjimek na jeden [...]

To je sice hezké, ale hlavně tam chybí řešení jiné věci: totiž toho, aby
to opravdu šlo použít k vzájemnému vyloučení (např. by tam byla potřeba
nějaká zpětná vazba pro případ, že by měl program skončit brzo po spuštění
a zamykací soubor měl být zase odstraněn, dokud toto vlákno stále běží --
např. na nejlepším OS na světě ho není možno jen tak smazat, dokud je
otevřený!) a aby se to umělo pokud možno samo zotavit z běžných druhů
havárií.

PS: Když už jsme u blbého chování OOo, tak by 
v bridges/source/cpp_uno/shared/vtablefactory.cxx nemuseli vyrábět
dočasné soubory v domovském adresáři. Když už tam to mapování potřebují, 
tak by aspoň mohli použít něco jako shm_open().

-- 
Pavel Kankovsky aka Peak                          / Jeremiah 9:21        \
"For death is come up into our MS Windows(tm)..." \ 21st century edition /





Další informace o konferenci Linux