18.9.2026, 21:23
@predator.1 No, je to trochu jinak. Problém s ukončením doplňku úplně odstraněn nebyl nikdy. Stále se u některých instalaci Kodi, kde doplněk zdánlivě běží bez problému, může objevit například hláška:
To svědčí o tom, že autor ten problém neodstranil, jen ho posunul do jiné úrovně. To pak může mít vliv na to, že někde a někdy ten problém vůbec nevznikne, jinde se objeví, ale není tak moc kritický a jinde zase způsobí, že odstavení Kodi může trva i několik minut, což většinou lidé vyhodnotí tak, že Kodi zamrzlo, protože nikdo 5 minut na ukončení Kodi čekat nebude.
Záleží při tom jak na typu instalace (OS a CPU), protože podle toho si doplněk stahuje binární kód, ale i na tom, jaké doplňky a jak nastavené dané Kodi používá. To totiž může zásadně změnit logiku fungování a časování právě při těch kritickcých fázích, kterým jsou spuštění a odstavení Kodi. A pak stačí skutečně málo, a na jednom Kodi to funguje dobře, na jiném hůře a na dalším vůbec ne.
Já jsem např. ve verzi, kterou jsme tu kdysi zkoumali, a jejíž kód jsme dekompilovali, našel skutečně ve vazbách mezi jednotlivými thready SC Helper-u vyloženě logické chyby. Jejich analýzou jsem například dospěl k tomu, že Kodi by se nakonec mělo po nějkém delší době ukončit. A skutečně, stačilo tenkrát počkat oněch 4-5 minut, a stalo se tak. Nabízel jsem (zprostředkovaně), že autorovi popíšu, v čem je ten problém a jak ho definitivně osdstranit, On ho ale mezitím "opravil", ale i když jsem už novou verzi nekontroloval, to že se tam ten porblém objevil znova, svědčí velmi pravděpodobně o tom, že oprava nevedla směrem k odstranění těch logických chyb, ale jen k tomu, že vyhodnocení podmínek pro ukončení zůstalo stále závislé na víceméně náhodných aspektech.
Ono napsat plugin pro Kodi je celkem jednoduché. Ale už o něco složitější může být napsat script a vůbec nejkomplikovanější je pak napsat service. Zvláště tehdy, pokud v ní použijete nějakou formu paralelního programování. Tohle si dost lidí neuvědomuje. To, že plugin pokud spustíte, tak zpravidla vytvoří nějaký seznam, předá ho jádru Kodi a skončí (a zapomene). Pokud si něco chce pamatovat, uloží si to zpravidla do toho vytvořeného seznamu, a to co si tam uloží ho pak, pokud uživatel se seznamen provede tu správnou akci, znova spustí. U skriptu a zejména u service je to jiné. Service se zpravidla spustí se startem Kodi a běží tak dlouho, dokud celé Kodi neskončí. A kód, respektive jeho tvůrce, musí dodržovat několik sice vcelku jednoduchých, ale o to významnějších pravidel. Čím je ale ona service složitější, tím je to dodržování pravidel zpravidla těžší, a co hlavně, dá se při tom nadělat hodně chyb, které se navíc nemusí projevit hned a mají často i výrazný kumulativní charakter.
Kód:
2026-09-18 20:44:14.064 T:847601 info <general>: CPythonInvoker(18, /storage/.kodi/addons/service.sc.helper/service.py): waiting on thread 140667791582912
2026-09-18 20:44:18.814 T:847546 error <general>: CPythonInvoker(18, /storage/.kodi/addons/service.sc.helper/service.py): script didn't stop in 5 seconds - let's kill itTo svědčí o tom, že autor ten problém neodstranil, jen ho posunul do jiné úrovně. To pak může mít vliv na to, že někde a někdy ten problém vůbec nevznikne, jinde se objeví, ale není tak moc kritický a jinde zase způsobí, že odstavení Kodi může trva i několik minut, což většinou lidé vyhodnotí tak, že Kodi zamrzlo, protože nikdo 5 minut na ukončení Kodi čekat nebude.
Záleží při tom jak na typu instalace (OS a CPU), protože podle toho si doplněk stahuje binární kód, ale i na tom, jaké doplňky a jak nastavené dané Kodi používá. To totiž může zásadně změnit logiku fungování a časování právě při těch kritickcých fázích, kterým jsou spuštění a odstavení Kodi. A pak stačí skutečně málo, a na jednom Kodi to funguje dobře, na jiném hůře a na dalším vůbec ne.
Já jsem např. ve verzi, kterou jsme tu kdysi zkoumali, a jejíž kód jsme dekompilovali, našel skutečně ve vazbách mezi jednotlivými thready SC Helper-u vyloženě logické chyby. Jejich analýzou jsem například dospěl k tomu, že Kodi by se nakonec mělo po nějkém delší době ukončit. A skutečně, stačilo tenkrát počkat oněch 4-5 minut, a stalo se tak. Nabízel jsem (zprostředkovaně), že autorovi popíšu, v čem je ten problém a jak ho definitivně osdstranit, On ho ale mezitím "opravil", ale i když jsem už novou verzi nekontroloval, to že se tam ten porblém objevil znova, svědčí velmi pravděpodobně o tom, že oprava nevedla směrem k odstranění těch logických chyb, ale jen k tomu, že vyhodnocení podmínek pro ukončení zůstalo stále závislé na víceméně náhodných aspektech.
Ono napsat plugin pro Kodi je celkem jednoduché. Ale už o něco složitější může být napsat script a vůbec nejkomplikovanější je pak napsat service. Zvláště tehdy, pokud v ní použijete nějakou formu paralelního programování. Tohle si dost lidí neuvědomuje. To, že plugin pokud spustíte, tak zpravidla vytvoří nějaký seznam, předá ho jádru Kodi a skončí (a zapomene). Pokud si něco chce pamatovat, uloží si to zpravidla do toho vytvořeného seznamu, a to co si tam uloží ho pak, pokud uživatel se seznamen provede tu správnou akci, znova spustí. U skriptu a zejména u service je to jiné. Service se zpravidla spustí se startem Kodi a běží tak dlouho, dokud celé Kodi neskončí. A kód, respektive jeho tvůrce, musí dodržovat několik sice vcelku jednoduchých, ale o to významnějších pravidel. Čím je ale ona service složitější, tím je to dodržování pravidel zpravidla těžší, a co hlavně, dá se při tom nadělat hodně chyb, které se navíc nemusí projevit hned a mají často i výrazný kumulativní charakter.
