Portál AbcLinuxu, 12. června 2026 14:31
Ve čtvrtek 4. 5. 2006 odpoledne měl portál abclinuxu.cz vážné problémy s dostupností. To bylo tak...
Ve dvě hodiny odpoledne mělo začít losování vítězů soutěže, která se pořádala v rámci ankety o nejoblíbenější distribuci. Sice jsme čekali, že se trošku zvýší nápor na server, ale výsledek daleko předčil naše očekávání: problém totiž vůbec nebyl ve zvýšeném zájmu návštěvníků - to jen potíže trochu podtrhlo a zvýraznilo. Místo toho se sešly hned dva jiné průšvihy najednou.
1) Ano, měli bychom se stydět, ale už se stalo, zpátky to nevrátíme, takže se můžeme veřejně přiznat: nechali jsme se nachytat na poměrně primitivní Denial of Service útok, který kdosi spustil právě s plánovaným začátkem losování. Kdyby býval server běžel na jádře řady 2.6, nic by se nestalo (až do včerejška používalo abclinuxu.cz již značně vousaté jádro 2.4). S upgradem a přesunem na nový server se otálelo tak dlouho, až se to nevyplatilo.
Ale stalo se. Samo o sobě by to však nebylo nic hrozného a máme důvod věřit, že server by tu taškařici bez větších potíží ustál.
Jenže se k tomu přidal ještě problém číslo...
2) Aplikace, která obstarává provoz stránek, je náchylná k problémům, vyskytnou-li se v komentářích (diskuze, blogy, zprávičky, atp.) binární data, ze kterých se občas vytvoří neplatné XML entity. Celý dokument pak nelze načíst, log se plní výjimkami, dějí se nepěkné věci. Protože je však - jak se zatím zdá - nemožné chybu simulovat na lokální instalaci, a vývojáři dotčené knihovny (DOM4J) tvrdí, že podobné selhání není možné, jde o zapeklitý oříšek. UPDATE: chyba již byla vyřešena.
Včera se tato chyba projevila hned na dvou místech a to tak, že bylo velmi obtížné ji odhalit - proto jsme dlouho nevěděli, v čem vězí problém. Dizkuze na hlavní stránce nešly načíst, což jste si možná všimli, pokud už se vám přeci jen podařilo aspoň kousek stránky zobrazit. Každý pokus o zobrazení nezobrazitelných diskuzí zanechal v logu velkou hromadu textu (každá diskuze zvlášť, přičemž na hlavní stránce je docela dlouhý seznam aktuálních diskuzí) a to byl ten zásadní moment, který způsobil, že se server při takovém přívalu dat nezdravě zadýchal.
Než se však podařilo objevit pravou příčinu problému, dost dlouho to trvalo. Výsledkem je však skutečnost, že Abíčko teď běží na nablýskaném novém serveru Sun Fire X2100 s Opteronem 175 dual-core 2,2GHz (který darovala společnost Sun Microsystems Czech s.r.o.; test na abclinuxu.cz). Migrace ze starého železa byla už nějakou dobu v plánu a všechno bylo v podstatě připraveno. Jen nikdo nečekal, že bude nutné ji provést s nožem na krku v deset večer ve všední den. Teď však máme nový stroj, nové jádro, novou Javu, nové boty... prostě paráda.
Doufáme, že si rychlost nového serveru, kterou lze pocítit na první poklik, budete vychutnávat stejně jako my.
P.S. Ale nějaké veřejné losování si asi příště ještě dobře rozmyslíme. Nechceme dvakrát otevřít stejnou Pandořinu skříňku.
DOS útok = útočník se pokusí přepsat napadený operační systém MS DOSem
.
)))))))

Nemohl by Leoš (nebo někdo, kdo do toho vidí), napsat do blogu o co přesně šlo?My jsme si sice chtěli nasypat popel na hlavu, ale ne ze sebe udělat příliš velké blbce. Takže jsem původní verzi článku trošku "zobecnil" - právě proto, abyste se sice dozvěděli, o co šlo, ale ne to, kde přesně byla chyba.
Milé Ábíčko, za těch pár dlouhých hodin jsi nám dost chybělo
, děkujeme, že jsi 
No jo, ať blogy, tak hledání v diskusích. Píšu si sem každou blbost v pokroku s noťasem a najednou tu byla černá díra.
ty hadi uživatelský

jinak to nešlo
90-96% packet loss.
Konečně využiju těch 5 Mb/s
, osobně nepoznávám rozdíl mezi 1Mbit, co mám doma a 100Mbit, co mám tady
. Většinou je totiž úzké hrdlo krapet někde jinde 
Při brouzdání to - pravda - moc znát není, ale ten download - pohádka
Nicméně Ábíčko je doopravdy znatelně rychlejší.
SAXReaderu, kterým se nastaví kódování, které pak probublá až do XML parseru a ten už pak byty na vstupu interpretuje podle zvoleného kódování.
- dokonce je to takova "verejna" znama "chyba", kterou se nikdo za celou dobu existence Java EE neobtezuje opravit...
A pokud znate lepsi reseni, tak by me vazne zajimalo...
javax.servlet.ServletRequest.setCharacterEncoding(java.lang.String enc), kterou by mělo jít nastavit, v jakém kódování poslal data klient. Je potřeba jí ale zavolat ještě před získáváním parametrů requestu, aby se překódování stihlo uplatnit.
V tomto případě je Černý Petr spíš v rukou autorů prohlížečů, které odesílaná data naštěstí kódují ve stejném kódování, v jakém data přijaly (takže alespoň víte, co můžete očekávat), ale charset= už do Content-Type nepřidají. Na druhou stranu, i kdyby přidaly, on jí zase dnes asi žádný server nezpracuje
V případě XML parserů je to bohužel chyba na jejich straně, protože validní XML dokument buď obsahuje XML prolog s uvedeným kódováním, nebo je kódován v UTF-8 (a pokud začíná příslušnou značkou, může být bez prologu možná ještě v UTF-16), ale parsery na tuhle informaci z vysoka kašlou.
Hey and away we go Through the grass, cross the snow Big brown beastie, big brown face I´d rather be with you than flying through space.
Urcite by se mi hodil.
Treba jako dar za hlasovani v soutezi, co vy na to?
Když vidim ten rozdíl, tak mne napadlo - na čem běželo ještě předevčírem AbcL? Že je to tak poznat?
No, moudrej z toho nejsem, to ještě nic nevypovídá, ani porovnání s tim SUNem si z hlavy neudělam
. Ale děkuju 
P.S. jestli na tom stroji jelo všechno, databáze, webserver, tak ale zase vidim, že se o to může pokoušet dost lidí, o svuj píseček.
1.6 GHzPřesně jak jsem si myslel
P.S.: nové… jak se to vezme, pokud mne paměť neklame, verze 2.6.0 vyšla někdy na podzim 2003…
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.