Problème

Parfois, des pannes de JVM avec un SEGV se produisent dans le code compilé JIT dans com.adobe.cq.social.datastore.as.impl.UGCCDataServiceImpl. Il est possible qu'il y ait un bogue Java ici, mais celui-ci semble affecter un ensemble de méthodes très localisé.

Il existe une solution de contournement en spécifiant les paramètres JIT pour cette classe qui semble résoudre le problème. Cette tâche consiste à capturer et à documenter la solution de contournement et les circonstances dans lesquelles elle est applicable.

Qui a besoin de cette solution ?

  • Vous utilisez l'extension Social Communities avec un fournisseur de stockage Social Cloud configuré.
  • Vous exécutez AEM sous Linux 64 bits à l'aide de la JVM Oracle 64 bits version 1.7.
  • Vous rencontrez des pannes de JVM avec Adobe Experience Manager.
  • Les plantages JVM sont signalés dans com.adobe.cq.social.datastore.as.impl.UGCCDataServiceImpl
    Les plantages JVM sont accompagnés d’un fichier hs_err_pid<<PROCESS-ID>>.log apparaissant dans le répertoire crx-quickstart de CQ. Les informations de base sur la cause du plantage de la machine virtuelle Java apparaîtront dans ce fichier. Cherchez quelque chose comme cela dans le cas de pannes auxquelles cette solution de contournement est confrontée :
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00002aaaabf4d59c, pid=17837, tid=1276991808
#
# JRE version: Java(TM) SE Runtime Environment (7.0_65-b17) (build 1.7.0_65-b17)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.65-b04 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# J 3816 C2 com.adobe.cq.social.datastore.as.impl.UGCCDataServiceImpl.readDocument(Ljava/lang/String;)Ljava/util/Map; (287 bytes) @ 0x00002aaaabf4d59c [0x00002aaaabf4d4e0+0xbc]

Les informations critiques sont la dernière ligne de cet exemple qui montre que le cadre problématique implique com.adobe.cq.social.datastore.as.impl.UGCCDataServiceImpl, un composant du connecteur de service cloud.

Quelle est la solution ?

La solution de contournement utilise deux approches : utiliser une version de JVM moins sujette au problème et utiliser une option JVM pour désactiver la compilation native du code de problème spécifique.
Au moment de la publication de cette note, la dernière version de Java 1.7 disponible sur Oracle est la version 1.7_65. La recommandation de cette solution de contournement consiste à passer à la version 1.7_65 à partir de toute version antérieure.
En utilisant 1.7_65, la solution consiste à désactiver la compilation juste à temps (JIT) d'une classe de problèmes et d'une méthode spécifique via l'option Java -XX:CompileCommand=exclude. Plus précisément, -XX:CompileCommand=exclude,com.adobe.cq.social.datastore.as.impl.UGCCDataServiceImpl::readDocument"

Comment mettre en œuvre cette solution de contournement dans mon environnement ?

Cette mise en oeuvre nécessitera de vérifier et éventuellement de mettre à jour la version de Java que vous avez installée et de mettre à jour le script de démarrage que vous utilisez pour démarrer AEM. Pour mettre à niveau Java, consultez la documentation Oracle concernant le choix, le téléchargement, l'installation et la configuration de jdk1.7.0_65 64 bits pour Linux x86-64.

Il est généralement recommandé de lancer AEM via les scripts de démarrage situés dans crx-quickstart/bin/start. Cependant, il est courant d'utiliser des scripts de démarrage personnalisés. Dans le cas où crx-quickstart/bin/start est utilisé, l'option suivante doit être ajoutée :

CQ_JVM_OPTS="${CQ_JVM_OPTS} -XX:CompileCommand=exclude,com.adobe.cq.social.datastore.as.impl.UGCCDataServiceImpl::readDocument"


REMARQUE: besoin de regarder le bin / start par défaut et de voir à quel endroit cela appartiendra, exactement.

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne