Jak jsem si zabil webhostingový server

Jednou si tak programuju na svym serveru a jak mám ve zvyku hned debuguju právě napsaný kód v PHP. Takže pouštím web zadávám URL a odezva je najednou nějaká strašně pomalá, skoro bych řekl, že žádná. No chvíli čekám, mám tam nejaký cyklus, a po hodné chvíli stále nic… Pouštím pro kontrolu jiný web a nic nejede. Takže VMW a koukám, server beží na 100% a dochází místo na disku. Tak ho otočím všechno v pořádku naběhne, no nic něco se zaseklo, už to zase běží.
Běží do chvíle než spustím onu URL…
a zase se to zaseklo…
takhle se to opakuje ještě asi 3x…
než došlo místo na disku…
brrrr co teď někde mám chybu jako kráva a už 10x jsem to kontroloval a nic nenašel??
za chvíli najdu obří errorlog, za pár mnut testování desítky GB…
říká, že neexistují řádky v databázi s ID kolem 2 500 000, no bodejť by existovaly, když tam nejsou…
je jich tam kolem 20…
nedělám nic zvláštního jednoduše čtu pár řádkků z DB v cyklu for tak jako jsem to dělal už milionkrát…

Po půl hodině zírám jako vyvoraná myš MÁM TO!

for ($x = 0; x < $max_count; $x++) {
// přečti číslo objednávky
$Objednavka = mysql_result($sSQL, $x,"OBJEDNAVKA");

// … dalsi kod ….

}

Pochopitelně správně má být:
for ($x = 0; $x < $max_count; $x++) {

Je to jasný?

Ještě nikdy za posledních 25 let programování jsem takovou chybu neudělal, ovšem proč to php zbaštilo to netuším…

Samotná chyba v te podmince cyklu by asi jen zacyklila procesor, ale v kombinaci s tim dotazem do databáze a následným logováním err odpovědí to byla smrtící kombibace. Jen mě překvapilo jak strašně rychle se ten log vytvořil a zaplnil komplet celý disk.

Předpokládal bych, že takovou hrubou chybu kompilátor vůbec nepustí na stránku.

 

About Mirek Šalamon

Jsem programátor na volné noze a cestovatel.
This entry was posted in Blog and tagged , , . Bookmark the permalink.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *