Il nous aura fallu environ 1 mois sur nos serveurs de production pour trouver une résolution à ce problème. Afin que sa résolution puisse servir, je poste un petit mémo.

Si vous rencontrez des segmentations fault Apache du type :

[Mon Oct 05 13:02:32 2009] [notice] child pid 25046 exit signal Segmentation fault (11)

et que vous utilisez la Zend Platform et Zend Framework (et notamment le composant Zend_Cache), cela peut venir du backend Zend_Platform du module Zend Cache du Zend Framework.

En effet, le backend Zend_Platform du composant Zend_Cache du Zend Framework utilise les méthodes obsolètes de stockage en cache de la Zend Platform (output_cache_get / output_cache_put). Ces méthodes sont obsolètes (cf. la documentation de l’API de la Zend Platform). Vous devriez plutôt utiliser les méthodes zend_[shm|disk]_cache_delete, zend_[shm|disk]_cache_store, zend_[shm|disk]_cache_fetch.

Un bug (ZF-8003) a été ouvert sur le Zend Framework qui ne sera pas corrigé en raison de la non homogénéité des plate-formes (la version windows de la Zend Platform ne connait pas les nouvelles méthodes).

Pour régler le problème, une des solutions est d’utiliser le backend Zend Server du Zend Framework qui fonctionne avec les dernières version de la Zend Platform (3.6.2 et supérieure). Ce backend utilise les méthodes zend_[shm|disk]_cache_delete, zend_[shm|disk]_cache_store, zend_[shm|disk]_cache_fetch qui sont compatibles avec la Zend Platform.

J’espère que cela pourra aider.