問題点

SEGV で JVM クラッシュが発生することがあります。これらは全て、com.adobe.cq.social.datastore.as.impl.UGCCDataServiceImpl の JIT コンパイルコード内で発生します。Java バグの可能性もありますが、ローカライズされたメソッドのセットに影響しているようです。

回避策は、問題を軽減すると思われるこのクラスに、JIT パラメーターを指定することです。適用可能な場合、このタスクは回避策と状況を保存し、文書化します。

この回避策の対象者

  • Social Communities Extension と設定済みのソーシャルクラウドストレージプロバイダーを使用しています。
  • 64 ビット版 Linux 上で Oracle 64 ビット JVM バージョン 1.7 を使用して AEM を起動しています。
  • Adobe Experience Manager で JVM がクラッシュします。
  • JVM クラッシュは、com.adobe.cq.social.datastore.as.impl.UGCCDataServiceImpl
    で報告されています。JVM クラッシュは、CQ の crx-quickstart ディレクトリ内に表示されるファイル、hs_err_pid<<PROCESS-ID>>.log が伴います。JVM クラッシュの原因に関する基本的な情報は、このファイルに表示されます。クラッシュが発生した場合、次のような回避策を探します:
# 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]

重要な情報は、この例の最後の行です。問題のあるフレームと、クラウドサービスコネクタのコンポーネント com.adobe.cq.social.datastore.as.impl.UGCCDataServiceImpl が関与していることを示しています。

回避策とは?

回避策として 2 つのアプローチを使用します:問題が発生しにくい JVM のバージョン使用し、JVM オプションを使用して特定の問題コードのネイティブコンパイルを無効にします。
このノートの公開時点で、Oracle から入手できる最新の Java 1.7 バージョンは、1.7_65 です。この回避策の推奨は、以前のバージョンから 1.7_65 に移行することです。
1.7_65 を使用することで、回避策は、特定の問題クラスおよびメソッドの just in time(JIT)コンパイルを Java -XX:CompileCommand=exclude オプションで、さらに無効にします。具体的には、-XX:CompileCommand=exclude,com.adobe.cq.social.datastore.as.impl.UGCCDataServiceImpl::readDocument"

この回避策を環境に実装する方法を教えてください。

この実装では、インストールされた Java のバージョンを確認または更新し、AEM の起動に使用する起動スクリプトを更新する必要があります。Java をアップグレードするには、Linux x86-64 用 jdk1.7.0_65 64-bit の選択、ダウンロード、インストールおよび設定に関する Oracle のドキュメントを参照してください。

一般に、AEM を crx-quickstart/bin/start にある起動スクリプトを介して起動することを推奨します。ただし、カスタマイズされた起動スクリプトを使用するほうが一般的です。crx-quickstart/bin/start が使用されている場合は、次のオプションを追加する必要があります。

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


注意:デフォルトの bin/start を表示し、これがどこに属するかを正確に確認する必要があります。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー