SE - Session timeout #24

Closed
opened 2017-09-19 20:55:14 +02:00 by Podhorecky · 10 comments
Podhorecky commented 2017-09-19 20:55:14 +02:00 (Migrated from git.spotter.cz)

nevím jaký je nastaven timeout pro načtení strany, ale stalo se mi, že strana po čekání na výsledek vrátila odlogovanou stránku s hlášením Vyžadovaná autentifikace.

Delší trvání než se stránka načte mohlo být způsobeno i pomalým připojením.
Pokud by to vyřešil prodloužený timeout, tak ok.

nevím jaký je nastaven timeout pro načtení strany, ale stalo se mi, že strana po čekání na výsledek vrátila odlogovanou stránku s hlášením Vyžadovaná autentifikace. Delší trvání než se stránka načte mohlo být způsobeno i pomalým připojením. Pokud by to vyřešil prodloužený timeout, tak ok.
Disassembler commented 2017-09-22 16:04:20 +02:00 (Migrated from git.spotter.cz)

closed via commit 1a40b8d132

closed via commit 1a40b8d1324f54c305aaa9f64f9d77bacc5b1c1e
Disassembler commented 2017-09-22 16:13:30 +02:00 (Migrated from git.spotter.cz)

Opět zdánlivě nepodstatná maličkost, která mi zabrala celý den, protože někdo myslel, ale nezdokumentoval. Tentokrát Web2py.

Pokud po čekání na výsledek Sahana vrátí odlogovanou stránku, značí to problém se session. Výchozí platnost session je 8 hodin. Web2py ale časové razítko poslední akce neaktualizuje pokaždé, ale jenom jednou za 1/10 délky platnosti session. Navíc při práci se souborem se session tento zamyká, takže v případě, že by mělo dojít k souběhu a dva požadavky by měly číst stejný session soubor (což při dlouho trvajících requestech není neobvyklé, protože Sahana implementuje jakýsi heartbeat mechanismus pomocí asynchronních requestů), Web2py místo toho vytvoří session novou.

Přesunul jsem tedy úložiště session do databáze, což by mělo problémům duplikace předejít. Session v databázi se totiž zamyká jen pro zápis, takže jiný požadavek ji stále může alespoň číst a souběh při zápisu už si vyřeší databázový engine zařazením do fronty.

Opět zdánlivě nepodstatná maličkost, která mi zabrala celý den, protože někdo myslel, ale nezdokumentoval. Tentokrát Web2py. Pokud po čekání na výsledek Sahana vrátí odlogovanou stránku, značí to problém se session. Výchozí platnost session je 8 hodin. Web2py ale časové razítko poslední akce neaktualizuje pokaždé, ale jenom jednou za 1/10 délky platnosti session. Navíc při práci se souborem se session tento zamyká, takže v případě, že by mělo dojít k souběhu a dva požadavky by měly číst stejný session soubor (což při dlouho trvajících requestech není neobvyklé, protože Sahana implementuje jakýsi *heartbeat* mechanismus pomocí asynchronních requestů), Web2py místo toho vytvoří session novou. Přesunul jsem tedy úložiště session do databáze, což by mělo problémům duplikace předejít. Session v databázi se totiž zamyká jen pro zápis, takže jiný požadavek ji stále může alespoň číst a souběh při zápisu už si vyřeší databázový engine zařazením do fronty.
Disassembler commented 2017-09-22 16:16:48 +02:00 (Migrated from git.spotter.cz)

changed title from SE {- - t-}meout to SE {+- Session ti+}meout

changed title from **SE {- - t-}meout** to **SE {+- Session ti+}meout**
Podhorecky commented 2017-09-22 16:18:07 +02:00 (Migrated from git.spotter.cz)

uff.. díky moc.. tohle jsem bohužel nemohl předpokládat.
Chtěl jsem vlastně navrhnout nějaký uvážený postup na moje issues.
Jsem sice schopen zahltit Gitlab, ale otázka je, kterým mým požadavkům dát přednost aby tu byl trochu příznivý poměr čas/efekt... a aby vást to moc neotrávilo :)

uff.. díky moc.. tohle jsem bohužel nemohl předpokládat. Chtěl jsem vlastně navrhnout nějaký uvážený postup na moje issues. Jsem sice schopen zahltit Gitlab, ale otázka je, kterým mým požadavkům dát přednost aby tu byl trochu příznivý poměr čas/efekt... a aby vást to moc neotrávilo :)
Disassembler commented 2017-09-22 16:26:04 +02:00 (Migrated from git.spotter.cz)

GitLab klidně zahlťte. Priority jsem si nastavil takto:

  1. Něco vyhazuje errory
  2. Něco nefunguje, ale nevyhazuje errory
  3. Enhancementy

Přičemž cokoliv má tag critical, je v dané kategorii vyřizováno přednostně a Sahana má přednost před ostatními aplikacemi. Když se mi náhodou nechce dělat, tak si vylosuju něco, co vypadá jednoduše, abych mohl předstírat, že jsem za ten den alespoň něco udělal. Tohle issue byl ale Černý Petr :)

GitLab klidně zahlťte. Priority jsem si nastavil takto: 1. Něco vyhazuje errory 2. Něco nefunguje, ale nevyhazuje errory 3. Enhancementy Přičemž cokoliv má tag critical, je v dané kategorii vyřizováno přednostně a Sahana má přednost před ostatními aplikacemi. Když se mi náhodou nechce dělat, tak si vylosuju něco, co vypadá jednoduše, abych mohl předstírat, že jsem za ten den alespoň něco udělal. Tohle issue byl ale Černý Petr :)
Podhorecky commented 2017-09-22 16:31:57 +02:00 (Migrated from git.spotter.cz)

ok, rozumím.. z mé strany jen dodám, že jsem co se týče testování tak trochu "pacient" ... když jsem mimo zaměstnání, tak doma je připojení mizerné a díky špatnému kabelu i nechtěně vypadávající. To, co může být hodnoceno jako server-side, může být někdy ve skutečnosti i jako klient-side, kdy je buď příšerně pomalá konektivita, nebo výpadky.

Na druhou stranu je to možná i jeden z důvodů, že to beru v úvahu a vykrystalizoval z toho nápad řešit projekt jako autonomní image, kdy některé služby budou lokálně. A uživatel (nejen já) bude mít větší spoleh na provoz tohoto cirkusu.

ok, rozumím.. z mé strany jen dodám, že jsem co se týče testování tak trochu "pacient" ... když jsem mimo zaměstnání, tak doma je připojení mizerné a díky špatnému kabelu i nechtěně vypadávající. To, co může být hodnoceno jako server-side, může být někdy ve skutečnosti i jako klient-side, kdy je buď příšerně pomalá konektivita, nebo výpadky. Na druhou stranu je to možná i jeden z důvodů, že to beru v úvahu a vykrystalizoval z toho nápad řešit projekt jako autonomní image, kdy některé služby budou lokálně. A uživatel (nejen já) bude mít větší spoleh na provoz tohoto cirkusu.
Podhorecky commented 2017-09-23 01:44:46 +02:00 (Migrated from git.spotter.cz)

timeout se ještě párkrát objevil po relativně krátké době když jsem vyplňoval formulář, budu to sledovat.

timeout se ještě párkrát objevil po relativně krátké době když jsem vyplňoval formulář, budu to sledovat.
Disassembler commented 2017-09-24 08:34:26 +02:00 (Migrated from git.spotter.cz)

Teď jsem tak mimoděk zjistil, že když máte zároveň otevřenou Sahanu i SAMBRO instanci, session se přebíjí a navzájem odhlašují. To je bohužel v souladu s RFC 6265, které říká, že v rámci jedné IP nebo hostname se porty nerozlišují. Může to být jedna z příčin Vašeho odhlašování. Ve finální verzi by nás to trápit nemělo, protože tam budeme mít pouze jednu instanci Sahany. Nicméně existuje šance, že potkáme podobný problém u jiných aplikací, ale to kdyžtak budu řešit, až pokud se tak stane.

Teď jsem tak mimoděk zjistil, že když máte zároveň otevřenou Sahanu i SAMBRO instanci, session se přebíjí a navzájem odhlašují. To je bohužel v souladu s RFC 6265, které říká, že v rámci jedné IP nebo hostname se porty nerozlišují. Může to být jedna z příčin Vašeho odhlašování. Ve finální verzi by nás to trápit nemělo, protože tam budeme mít pouze jednu instanci Sahany. Nicméně existuje šance, že potkáme podobný problém u jiných aplikací, ale to kdyžtak budu řešit, až pokud se tak stane.
Podhorecky commented 2017-09-24 10:56:33 +02:00 (Migrated from git.spotter.cz)

ok, rozumím...
Zas bych ale netrval aby SE a SAMBRO musely být v jednom interface, pokud by tím vznikla komplikace pro budoucí update. Chápu že to budou ještě vyvíjet, tak bych tím nechtěl přidělávat práci.

ve hře bude ještě změna grafiky zhruba v tomto smyslu http://preview.themeforest.net/item/freshui-premium-web-app-and-admin-template/full_screen_preview/5767608
tak rozhodnutí odložme na později.

ok, rozumím... Zas bych ale netrval aby SE a SAMBRO musely být v jednom interface, pokud by tím vznikla komplikace pro budoucí update. Chápu že to budou ještě vyvíjet, tak bych tím nechtěl přidělávat práci. ve hře bude ještě změna grafiky zhruba v tomto smyslu http://preview.themeforest.net/item/freshui-premium-web-app-and-admin-template/full_screen_preview/5767608 tak rozhodnutí odložme na později.
Podhorecky commented 2018-03-14 22:57:02 +01:00 (Migrated from git.spotter.cz)

changed milestone to %2

changed milestone to %2
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Disassembler/Spotter-VM#24
No description provided.