Nejzáhadnější chyba roku 2018

Když už je konec roku a všichni shrnují své zkušenosti a nejlepší zážitky, rozhodl jsem se podělit se s vámi o nejzáhadnější chybu roku 2018 s jakou jsem se setkal u WordPress.

Bylo těsně před půlnocí běžný pracovní den a jeden monitoring mi nahlásil výpadek webu. Koul jsem na to a dal hostingu nějaký čas. Za chvíli to naskočilo. Ovšem monitoring hlásil dál chybu 503. To už mi přišlo divné, protože takto v noci větší návštěvnost na webu nemám. Opět jsem tomu dal pár minut a když to nenaskočilo, tak jsem si řekl, že se možná nějaký robot hrabe kde nemá a vyčerpal mi přidělená vlákna. Na webu je HTTPS takže jsem nemohl využít IPS/IDS poskytovatele hostingu, která bezproblémově tento závadný provoz blokuje. Zablokoval jsem přístup z venčí (mimo mou IP), ale nezabralo to.

Nastal tak čas aktivovat error log. A následujících řádků tam bylo plno.

[Fri Nov 30 10:22:13.939625 2018] [proxy_fcgi:error] [pid 7773:tid 139672096048896] (104)Connection reset by peer: [id XAEBQ4@mNd@XmYnSFRNPRAAAAAE] [client 81.200.55.234:61857] AH01075: Error dispatching request to : 
[Fri Nov 30 10:42:35.064056 2018] [proxy_fcgi:error] [pid 26070:tid 139672138008320] [id XAEGBo87hy@hYkzVZ6o1BgAAAA8] [client 81.200.55.234:63657] AH01067: Failed to read FastCGI header

Přiznám se, že do této doby jsem nevěděl, že by 503 mohlo být i něco jiného než vyčerpané serverové prostředky. Proto mě překvapilo, když se tam tato chyba objevila. Samozřejmě první co uděláte, že jí dáte do Google abyste zjistili co se stalo.

Našel jsem několik diskuzí na webu. Většinou se týkaly nastavení Apache. V jednom z příspěvků však bylo napsáno, že se může jednat o chybu při vykonávání PHP skriptu.

Zkusil jsem proto klasický postup při rozbitém WordPress. Přihlásit se přes FTP a vypnout všechny pluginy pomocí přejmenování adresáře kde se nachází. No a zabralo to. Jeden z pluginů způsoboval chybu 503! Pro mě naprostá novinka a mám s WordPress celkem dost zkušeností.

Pomocí metody pokus omyl, jsem zjistil že to dělá plugin bbPress. Bohužel už bylo pozdě v noci, takže jsem opravu nechal na později.

Dostal jsem se k tomu až za týden. Nastavil u webu odstávku přes plugin WP Maintenance Mode a začal se v tom hrabat. Jako první mě napadlo, že by mohlo dojít k poškození souboru. bbPress je masivní plugin. Mohl jsem ho kompletně přehrát, ale nakonec jsem se rozhodl vyřešit to přes Wordfence a jeho funkci na scanování, kdy porovnává nainstalované pluginy proti repositáři na WordPress.org. Jenomže on tam žádný problém nenašel.

Takže ve skriptech to nebylo. Jako další mě napadla data v databázi. Ačkoliv mám na webu antispamovou ochranu v posledních týdnech jsem se potýkal s ručně psaným spamem. Proti tomu vám nic nepomůže. Existují totiž lidé, co vkládají spamové příspěvky za pár centů a přitom vyplňují captcha. Já to řešil přes moderační frontu. Pokud příspěvek obsahuje URL, specifická klíčová slova anebo jej antispam vyhodnotí jako podezřelý tak jde do moderační fronty. Takhle mohl někdo propašovat kus škodlivého kódu, který třeba nefunguje jak má ale dokáže WordPress rozbít.

Prošel jsem tak databázi na poslední příspěvky pod bbPress a nic tam nenašel. Samozřejmě vše smazal. Ovšem po zapnutí pluginu se začala náhodně objevovat 503ka. Říkám si možná by to mohlo být ještě v meta datech, ale těch je opravdu hodně na procházení. Vyselektoval jsem si ty které patří bbPress a byly přidány zhruba v období problémů. Hromadně jsem je tak smazal. Následně provedl přes nástroje bbPress opravu/přepočítání. No a ono se to rozjelo.

Od té doby jsem na podobný problém nenarazil.

Závěr

Dodnes přesně nevím kde byla chyba. Stále mám zálohu databáze, takže pokud by se mi moc chtělo, což ani nechce, tak bych mohl web obnovit ze zálohy a zkusit mezi meta datama najít to, co rozbíjí bbPress. Na druhou stranu už vyšel WordPress 5, třeba by to už ani nešlo.

V každém případě tohle byla má nejzáhadnější chyba roku 2018. Na první pohled to vypadalo jako problém u hostingu i ty diskuze o tom svědčily. Ale jak se ukázalo zase jen nějaká rozbita data. No alespoň už vím že 503 neznamená jen vyčerpané serverové zdroje, ale i problém někde jinde.


Jak bude reklama vypadat?
-
Nechceš zde reklamu napořád jen za 60 Kč?
Zobrazit formulář pro nákup

4 komentáře

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.