Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Chyba v mod_czech

Také na svém WWW serveru používáte Apache a mod_czech? A občas se Vám stane, že některý proces zůstane "viset" a přitom výrazně zatěžuje CPU? Přišli jsme na to, kde je chyba.

Na našem serveru provozujeme kombinaci Apache + mod_czech pro dynamické kódování češtiny na našich stránkách. Po chvíli provozu ovšem tu a tam některý Apache zůstal v nekonečné smyčce, přičemž vytvářel nezanedbatelnou zátěž procesoru. Zřejmě nejsme jediní, protože o podobných problémech mluvili i provozovatelé jiných serverů.

Jak se zdá, na vině je mod_czech. Po krátkém zkoumání jsem odhalil i chybu. Je ve funkci mysockwrite, která nepočítá s případem uzavření spojení. Jak jsem se díval na zdrojové texty mod_czech verze 3.0.0, tam už patrně chyba není (ale nezkoušel jsem to), nicméně 3.0.0 je stále ještě v alpha verzi, takže pro ty, kdo provozují verzi 2.x.x nabízím tento patch: (není to žádná ukázka čistého programování, ale svůj účel splňuje)

--- mod_czech.c.old Thu Apr 23 09:23:16 1998
+++ mod_czech.c Thu Apr 23 09:25:40 1998
@@ -555,12 +555,23 @@
while(tosend) {
     if(r->connection->aborted) return(-1);
     n = bwrite(r->connection->client, &buf[i], tosend);
+    if(n <= 0)
+        break;
+    reset_timeout(r); /* reset timeout after successful write */
     i += n;
     tosend -= n;
#ifdef DEBUGBUG
     if(tosend) LogMess("Bwrite - Writing %d getting %d",tosend, n);
#endif
}
+
+ /* Tohle je hack!!! Melo by se vracet i a volajici funkce by mely pocitat
+  * s tim, ze je mensi nez num (coz se IMHO nedeje).
+  *  (Petr Tesarik, 21.4.1998)
+  */
+ if(i<num)
+   return(-1);
+
return(num);
}
/* -------------- ChangeTag -------------- */

Myslím si, že je to o něco lepší, než průběžně „ubíjet“ Apache, jak jsem to viděl na jednom nejmenovaném serveru.

Petr Tesařík

Petr Tesařík

Autor je spoluzakladatelem firmy Internet Info. V minulosti se zabýval testy poskytovatelů, v současné době studuje překladatelství a tlumočnictví na FFUK.

Školení SEO (optimalizace pro vyhledávače)

DW - Školení SEO
  • Jak fungují vyhledávače a co od nich můžete očekávat.
  • Analýza klíčových slov - kde hledat, jak slova vybrat, jak optimalizovat.
  • Metody linkbuildingu - jak získat zpětné odkazy aniž byste za ně museli platit.
  • Vyhodnocování SEO - nesledujte jen pozice.

Další informace o školení SEO »

Přehled názorů

Zatím nebyl přidán žádný názor. Přidejte svůj názor jako první.

       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem