Résolution des erreurs « SegmentNotFoundException » récurrentes dans les instances de publication AEM

Une erreur récurrente SegmentNotFoundException entraîne le blocage des instances de publication Adobe Experience Manager (AEM), qui ne répondent plus. Les vérifications de référentiel ne révèlent aucune corruption et le problème persiste après les redémarrages. Le problème se produit lors des tâches de maintenance telles que le nettoyage des révisions et le nettoyage de la mémoire du magasin de données en raison d’une gestion incorrecte des threads. Le fait de passer la gestion des threads du ThreadPool natif Java au ThreadPoolManager fourni par Sling résout le problème.

Description description

Environnement

Adobe Experience Manager (AEM) On-Premise, v6.5.22.0

Problème/Symptômes

  • L’erreur SegmentNotFoundException apparaît à plusieurs reprises dans les journaux de l’instance de publication AEM.
  • L’instance de publication AEM se bloque et ne répond plus du tout.
  • La génération continue de journaux d’erreurs entraîne un blocage sévère des E/S de disque.
  • Les contrôles de cohérence du référentiel à l’aide du rapport oak-run ne détectent aucune corruption ou problème structurel.
  • Le problème réapparaît après le redémarrage d’AEM, même lorsque les tâches de maintenance sont planifiées en dehors des heures de bureau ou temporairement désactivées.

Résolution resolution

Pour résoudre ce problème, procédez comme suit :

  1. Passez en revue la gestion des sessions dans votre code personnalisé et fermez toutes les sessions du référentiel après utilisation.
  2. Planifiez le nettoyage des révisions et le nettoyage de la mémoire du magasin de données en dehors des heures de bureau pour réduire les conflits.
  3. Accédez à la console JMX à l’adresse /system/console/jmx et vérifiez SessionStatistics MBeans pour les sessions de longue durée ou inactives. Utilisez des InitStackTrace pour identifier les origines de code personnalisé.
  4. Remplacez les ThreadPool natifs Java par des ThreadPoolManager fournis par Sling pour tous les processus en arrière-plan dans les services AEM.
  5. Redémarrez l’instance de publication AEM après l’implémentation de ces modifications.
  6. Surveillez les journaux d’erreurs pendant plusieurs jours pour confirmer que SegmentNotFoundException n’apparaît plus.
  7. Vérifiez que les opérations du référentiel restent stables et sans erreur.

Considérations supplémentaires :

  • Les contrôles d’intégrité du référentiel qui utilisent oak-run signalent de manière cohérente les nœuds et propriétés sains, indiquant qu’il n’y a aucune corruption structurelle.
  • Le problème n’est pas résolu en désactivant le nettoyage des révisions ou en exécutant le compactage hors ligne ; une gestion appropriée des threads est requise.
  • Les options de suppression manuelle de nœud peuvent ne pas s’appliquer si FileDataStore est configuré ; vérifiez toujours l’intégrité du référentiel avant d’effectuer des interventions manuelles.

Lecture connexe

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f