WordPress 3.0 multi-site con memcached no carga imágenes

Esta mañana teníamos intención de actualizar un WordPress MU que soporta una gran cantidad de tráfico a la última versión de WordPress 3.0.1 multi-site y nos hemos encontrado con un fallo que nos ha hecho retrasar la actualización al lunes porque hemos tardado unas horitas en encontrar el origen del problema.

En este caso, la instancia de WordPress MU está corriendo sobre el servidor web Nginx, con PHP-FPM, y con el cache de objetos activado con el backend sobre memcached, lo que hace que el servidor soporte perfectamente más de 300.000 visitas diarias. El actualizar manteniendo el mismo esquema de funcionamiento es condición indispensable, por eso cuando nos hemos puesto a hacer las pruebas de actualización hemos detectado un fallo por el cual se dejaba de cargar las imágenes del blog. En principio creíamos que sería fallo de incompatibilidad con algún plugin pero seguía produciéndose con todos los plugins desactivados.

Luego nos hemos dado cuenta que el fallo se produce al cambiar el sistema para mostrar las imágenes de cada blog del multisite, del antiguo /wp-content/blogs.php al nuevo /wp-includes/ms-files.php en las reglas rewrite de Nginx (o del htaccess en apache) y estar activado a la vez el cache de objetos sobre memcached. , en este caso, se dejaban de mostrar las imágenes. Si se desactiva el cache sobre memcached las imágenes se vuelven a mostrar perfectamente. El fallo genera el siguiente mensaje en el log de errores “zend_mm_heap corrupted

SOLUCIÓN: El fallo se resuelve fácilmente si actualizas el módulo PHP de memcached, en nuestro caso hemos pasado del stable 2.2.5 al beta 3.0.4

Probándolo en Apache también se produce el error y genera ese log, sin embargo si termina de cargar la imagen la mayoría de las veces.

Espero que este entrada le ahorre algunas horas de búsqueda al próximo que actualice :-)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *