A volte ci sono dei crash di JVM con un SEGV, tutti avvenuti all'interno del codice JIT compilato in com.adobe.cq.social.datastore.as.impl.UGCCDataServiceImpl. E' possibile che qui ci sia un bug di Java, ma uno sembra influenzare un insieme molto localizzato di metodi.
C'è una soluzione specificando i parametri JIT per questa classe che sembra alleviare il problema. Questo compito è quello di catturare e documentare la soluzione e le circostanze in cui è applicabile.
# 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]
L'informazione critica è l'ultima riga di questo esempio che mostra il frame problematico che coinvolge com.adobe.cq.social.datastore.as.impl.UGCCDataServiceImpl, un componente del connettore del servizio cloud.
La soluzione utilizza due approcci: usa una versione di JVM meno incline a sperimentare il problema, e usa un'opzione JVM per disabilitare la compilazione nativa del codice specifico del problema.
Al momento della pubblicazione di questa nota, l'ultima versione di Java 1.7 disponibile da Oracle è 1.7_65. La raccomandazione di questa soluzione è di passare a 1.7_65 da qualsiasi versione precedente.
Usando 1.7_65, la soluzione è ulteriormente disabilitare la compilazione just in time (JIT) di una specifica classe di problema e metodo tramite l'opzione Java -XX:CompileCommand=exclude. In particolare, -XX:CompileCommand=exclude,com.adobe.cq.social.datastore.as.impl.UGCCDataServiceImpl::readDocument"
Questa implementazione richiede la verifica ed eventualmente l'aggiornamento della versione di Java installata e l'aggiornamento dello script di avvio utilizzato per avviare AEM. Per aggiornare Java, consultare la documentazione Oracle per quanto riguarda la scelta, il download, l'installazione e la configurazione di jdk1.7.0_65 a 64 bit per Linux x86-64.
Generalmente si raccomanda che AEM venga avviato tramite gli script di avvio che si trovano in crx-quickstart/bin/bin/start. È comune, tuttavia, l'utilizzo di script di avvio personalizzati. Nel caso in cui si utilizzi crx-quickstart/bin/bin/start, è necessario aggiungere la seguente opzione:
CQ_JVM_OPTS="${CQ_JVM_OPTS} -XX:CompileCommand=exclude,com.adobe.cq.social.datastore.as.impl.UGCCDataServiceImpl::readDocument"
NOTA: è necessario guardare il bin/start predefinito e vedere esattamente dove questo dovrebbe appartenere.
Accedi al tuo account