Figyelj, ha a sury.org repóból régebbi PHP verziókat (<=7.3) használsz, és a Debian 11 (Bullseye) rendszeredet Debian 12 (Bookworm) verzióra frissítenéd!
A Debian 12-es csomagokban a Zend Opcache el van törve. Azt fogod észrevenni, hogy egyes oldalgenerálások a timeout-ig futnak és 100% CPU-t esznek!
Workaroundként, az opcache kikapcsolása megoldani látszik a problémát.
A probléma reprodukálásához ezt a kódrészletet sikerült összehoznom:
$x = 0;
$y = hexdec("0200");
for ($i = 0; $i < 100; $i++) {
if ($x >= $y) {
$i += $y % 4;
$x = 0;
}
$x++;
}
Ez a kód ilyen formában nekem 100%-os reprodukálhatósággal lerohad PHP 7.3 FPM használatával, ha az opcache be van kapcsolva.
Ugyanakkor:
Bár a var_dump($y) típusa és értéke int(512), de ha csinálok rá type cast-ot, akkor a kód máris nem rohad le:
$y = (int)hexdec("0200");
Az if() feltételben található kifejezésnek soha nem szabad teljesülnie, mert a ciklus 100-szor jár körbe, és a $x soha nem lesz nagyobb vagy egyenlő 512-vel, de ha az if()-en belül megváltoztatom a $i += $y % 4; értékadást $i += 5; -re, akkor szintén nem rohad le.
You have been warned.