Closed esoadamo closed 1 year ago
Možná opraveno pomocí https://github.com/fi-ksi/web-backend/commit/538860fe7585bfbfaa37da725a91c8280838be8d , uvidíme, jestli to bylo ono
Dnes opět spadlo, takže fix asi nefungoval :slightly_frowning_face: Záznam z logu Apache
%IP% - - [24/Sep/2022:17:30:25 +0200] "POST //runCode/881/submit HTTP/2.0" 502 0 "https://ksi.fi.muni.cz/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"
%IP% - - [24/Sep/2022:17:30:25 +0200] "POST //runCode/881/submit HTTP/2.0" 502 0 "https://ksi.fi.muni.cz/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"
Záznam z logu serveru:
[2022-09-24 17:32:30 +0200] [275004] [INFO] Handling signal: term
[2022-09-24 17:33:00 +0200] [296344] [INFO] Booting worker with pid: 296344
[2022-09-24 17:33:00 +0200] [296343] [INFO] Booting worker with pid: 296343
[2022-09-24 17:33:00 +0200] [296342] [INFO] Booting worker with pid: 296342
[2022-09-24 17:33:00 +0200] [296341] [INFO] Booting worker with pid: 296341
[2022-09-24 17:33:08 +0200] [275004] [INFO] Shutting down: Master
Modul 881 jsou opět nechvalně známé Mocniny, ve kterých se vysvětlují cykly. Stále věřím, že někde se prostě vyprodukuje obrovský soubor ze zacykleného programu, který se poté rovnou přečte do paměti. Nevím ale kde se toto děje, nový reporter čte soubory po 4096 znacích a vše nad 50KB zahazuje
Podle toho requestu to vypadá, že problém dělá runCode
, ale i ten má omezení na čtení výtupu na 5000 znaků
Oh, tak snad mám viníka, který nekontroluje délku vstupu
Snad fix https://github.com/fi-ksi/web-backend/commit/987a1ec7afc21c5b6368624435d691e1f3e54448 už bude všechno, uvidíme do budoucna
Vypadá, že už se neprojevuje. Opraveno.
Backend poslední dobou padá kvůli příliš zabrané paměti. Mám podezření, že by za to mohl moct Reporter, protože jsem několikrát viděl pád bezprostředně po POSTu na modul Mocniny. Tento modul je první úloha, kde řešitelé používají while a používá
print
, takže občas se něco do nekonečna zacyklí a teoreticky by to mohlo způsobit přetečení paměti.