78879aef68
36 URLs en 500 desde el cutover: las mismas 9 cartas de otras semanas en fr/it/en/pt. En espanol iban bien, y contra CDMON las mismas URLs daban 200, o sea que era regresion nuestra. La reescritura de enlaces internos al idioma activo llamaba a url_to_postid() una vez por enlace, y estas cartas traen unos 40. Cuando la URL no encaja en ninguna regla de reescritura, la WP_Query que monta esa funcion se queda sin clausula que la acote y se trae las 32.311 entradas CON su contenido, dos veces por peticion. 256 MB agotados en class-wpdb.php y 500. Se sustituye por fea_href_a_post_id(): ultimo segmento del path y una consulta con LIMIT 1, que no puede degenerar, cacheada por peticion. El ORDER BY reproduce a quien sirve WordPress esa misma URL, y no es cosmetico: hay 4 slugs compartidos por una pagina de primer nivel y una entrada, donde gana la pagina, y 58 compartidos por dos entradas -duplicados del import de Joomla- donde gana la de post_date mas reciente. Mi primer intento ordenaba por ID ASC y en esos 58 habria traducido el enlace equivocado. Verificado: 116/116 cartas traducidas en 200, 200 entradas al azar en 200, E2E 13/13, y el resolutor nuevo coincide con url_to_postid() en 461 de 461 slugs de los casos donde url_to_postid() no revienta. La consulta gorda ha desaparecido del performance_schema. Van dos centinelas a la suite E2E, una carta italiana y una francesa de las que fallaban. Nota de metodo para el futuro: esto no se reproduce con wp-cli, porque Polylang no instancia su frontend en CLI y el filtro sale antes de tiempo. Se cazo mirando events_statements_history_long en MySQL mientras se pedia la pagina por HTTP. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
25 lines
1.4 KiB
JSON
25 lines
1.4 KiB
JSON
{
|
|
"name": "feadulta-produccion-hetzner",
|
|
"baseUrl": "https://www.feadulta.com",
|
|
"viewport": { "width": 1366, "height": 900 },
|
|
"timeoutMs": 45000,
|
|
"userAgent": "feadulta-e2e/0.1 (+local)",
|
|
"hostResolverRules": "MAP www.feadulta.com 188.40.120.157, MAP feadulta.com 188.40.120.157",
|
|
"notes": "Produccion despues del cutover del 3-ago. Se resuelve a mano contra el Hetzner porque el WAF de Cloudflare devuelve 403 a nuestras IPs: por el dominio real no se puede verificar nada. Asi se comprueba el origen, que es lo que hemos cambiado. Las dos carta-trad-* son cartas traducidas que dieron 500 por el url_to_postid() de fea-homepage: quedan aqui de centinela.",
|
|
"urls": [
|
|
{ "slug": "home-es", "path": "/" },
|
|
{ "slug": "home-en", "path": "/en/" },
|
|
{ "slug": "home-fr", "path": "/fr/" },
|
|
{ "slug": "home-it", "path": "/it/" },
|
|
{ "slug": "home-pt", "path": "/pt/" },
|
|
{ "slug": "carta-semana", "path": "/mesa-libre/" },
|
|
{ "slug": "post-ejemplo", "path": "/como-bendecir-la-mesa/" },
|
|
{ "slug": "evangelio-dia", "path": "/evangelio-de-cada-dia/" },
|
|
{ "slug": "autores", "path": "/autores-lista/" },
|
|
{ "slug": "buscador", "path": "/?s=evangelio" },
|
|
{ "slug": "wp-login", "path": "/wp-login.php" },
|
|
{ "slug": "carta-trad-it", "path": "/it/luce-e-faro/" },
|
|
{ "slug": "carta-trad-fr", "path": "/fr/pasteurs-et-petits-bergers/" }
|
|
]
|
|
}
|