La solución es para WordPress 6.9.4 y 7.0-RC2-62197 ejecutándose en PHP 8.5.3 y 8.2, 8.3, 8.4, con habilitación y seguimiento JIT. A todos nos encantan los caminos CALIENTES; las funciones son para los demás.
Causa raíz: el rastreo PHP JIT crea una ruta activa corrupta a través de get_stylesheet() en wp-includes/theme.php a través de miles de solicitudes. Después de 15 a 18 horas, el seguimiento dañado produce un valor -1 interpretado como un archivo de 32 bits sin firmar, lo que genera una solicitud de asignación de 4.295.229.440 bytes. Este es un error del compilador PHP JIT (no 100% seguro), no un problema de WordPress o de tema.
La solución verificada mantiene JIT funcionando sin fallar:
Agregue a su PHP php.ini:
opcache.blacklist_filename=/etc/php-jit-blacklist.txtCree o cualquiera que sea su ruta de alojamiento /etc/php-jit-blacklist.txt:
/home/*/public_html/wp-includes/theme.phpAjuste el prefijo de ruta para que coincida con el diseño de su servidor.
Qué hace esto:
Elimina theme.php de la compilación JIT mientras mantiene JIT activo para todos los demás archivos. El rastro corrupto nunca se construye. El bloqueo puede ocurrir o no, dependiendo de su configuración (los comentarios serían útiles).
Verificado con: PHP 8.2, 8.3, 8.5 y algo de Valkey 9.0.3 con MariaDB 11.8, LiteSpeed LSPHP en aproximadamente 200 instalaciones de WordPress, 10 millones de páginas vistas, más de 1200 horas sin fallas después de fallar previamente cada 15 a 18 horas sin error.
Desactivar JIT por completo también funciona, pero no es necesario a menos que desee dejar de fumar.
Mi objetivo era acelerar y mejorar WordPress. MWA – Hacer que WordPress sea astronómico
Por favor, haga su propio DD, hágame preguntas, desafíe esta suposición, 4295229440 bytes, cuestione todo. Déjame saber si tienes alguna pregunta o necesitas ayuda.
Apoyar y mejorar WordPress.