Bug #1180
closed
Preteceni timeout spojeni pri ziskavani dat s prilis nizkym ID
Added by Tomáš Plesník about 11 years ago.
Updated about 11 years ago.
Description
Pokud si stahovaci klient vyzada udalosti od prilis nizkeho ID, server je v nastavenem timetoutu spojeni nestihne vytahat z DB a poslat je klientovi, cimz dojde k vytimeoutovani spojeni.
Resenim tohoto problemu by mohla byt kontrola atributu $event_last_id prichoziho na server a jeho prenastaveni ci chybova hlaska v pripade jeho prilis nizke hodnoty.
Ani když má klient nastaveno rozumný MAX_RCV_EVENTS_LIMIT nebo server MAX_EVENTS_LIMIT?
Prave na tom delam. Na tento problem jsme prisli s klukama z VUT (Martin Zadnik). Premyslel jsem o tom a tento problem by mel resit MAX_RCV_EVENTS_LIMIT nebo nasledne pak server se svym MAX_EVENTS_LIMIT, tak jak rikas - evidente ale tomu tak neni. Prave jsem se na to ted dival na warden server a jejich klient si vzdy jednou za cas prijde presne pro 6000 udalosti.
Takze bud se z nejakeho duvodu ignoruji nastavene limity a ceka se tak na prilis velkou davku dat, nebo uz i techto 6000 udalosti znamena prilis velkou casovou zatez. Pokracuji dal v objasneni a nalezeni problemu.
Tak od kluku z VUT se mi podarilo zjistit a overit, ze skutecne posilaji na warden.cesnet.cz a jejich MAX_RCV_EVENTS_LIMIT je skutecne nastaven na 6000 zprav. Tim padem muzeme situaci pri ktere by server nebral v potaz limity vyloucit. Ted je jeste otazka, zdali onech 6000 zprav neni opravdu uz prilis velke hledaci sousto pro aktualni stav databaze. Dival jsem se a nyni je v DB cca 45 mil. zprav.
V tom případě by bylo dobré najít, kde je úzké místo v kódu, protože databáze to není.
select * from events where type != 'test' and id > 0 and valid='t' and hostname not like '%cesnet.cz' order by id asc limit 6000;
vrací na warden.cesnet.cz data okamžitě.
Pozadal jsem kluky aby mi poslali dalsi info o nastroji (a jeho nastaveni), ktery stahuje data z warden serveru a popis toho co s daty nasledne delaji. Jinak se pokousim najit ono uzke misto. Jakmile neco zjistim, dam vedet.
Pavel Kácha wrote:
V tom případě by bylo dobré najít, kde je úzké místo v kódu, protože databáze to není.
[...]
vrací na warden.cesnet.cz data okamžitě.
Bohuzel se mi stale nedari replikovat danou nahlasenou chybu. Zkusil jsem na svuj server stahnout nekolik typu udalosti hned od ID 1 s limitem na maximalni pocet stazenych udalosti na 6000, ale ani jednou se mi neprojevil zminovany problem a server mi vzdy data bez problemu vystavil.
- Status changed from New to Closed
Ticket uzaviram. Po diskuzi s klukama z VUT jsme zjistili, ze na svem serveru provozovali blize nespecifikovanou verzi klienta. Po preinstalovani na posledni verzi klienta 2.1 se jiz problem neukazal. Me osobne se tento problem nepodarilo zreprodukovat a ze serveru jsem byl vzdy schopen stahnout vsechny udalosti od ID 0.
Also available in: Atom
PDF