問題点

asset share commons [1] のアセット検索のストレステスト中、メモリリークまたは未解決の問題が発生しました。

再現する手順:

  1. AEM6.3、SP1 および CFP2をインストールしてください

  2. asset-share-commons.ui.apps-1.1.2.zip のインストール(1.4.0で実行されます)

  3. asset-share-commons.ui.content-1.1.2.zip のインストール(1.4.0で実行されます)

  4. サイトの「Asset Share Commons」に「検索テンプレート」ページを作成する

  5. 空白を含むどの単語を使用しても「検索」でき、何百回でも実行できます。

  6. または、次のコマンドを実行します。

    # ab -n 100 -c 1 -A admin:admin "http://localhost:4502/content/asset-share-commons/en/light/searchtestpage.html?layout=card&p.offset=0&p.limit=24"

    Full Java GC が発生した後でも、一部のオブジェクトは解除できません。

    # jcmd 1810 GC.class_histogram | grep AssetResult
    505: 169 6760 com.adobe.aem.commons.assetshare.search.results.impl.result.AssetResultImpl
    # jcmd 1810 GC.class_histogram | grep AssetResult
    189: 1608 64320 com.adobe.aem.commons.assetshare.search.results.impl.result.AssetResultImpl

    ヒープダンプ分析は、不明テキストは org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5 [2] によって読み込まれる org.apache.sling.models.impl.ModelAdapterFactory と表示します。

    1. https://github.com/Adobe-Marketing-Cloud/asset-share-commons
    2. 「org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5 @ 0x9749d5d0」に読み込まれた「org.apache.sling.models.impl.ModelAdapterFactory」の1つのインスタンスは、1,528,764,960(78.49%)バイトを使用します。メモリは、「org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5 @ 0x9749d5d0」に読み込まれた「org.apache.sling.models.impl.ModelAdapterFactory」の1つのインスタンスに蓄積されます。

      キーワード
      org.apache.sling.models.impl.ModelAdapterFactory
      org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5 @ 0x9749d5d0

環境

Asset Share Commons 1.1.2 とそれ以前のバージョンを使用した AEM 6.3 SP1-CFP2

原因

Asset Share Commons で問題が発生しました。QueryBuilder 検索は、閉じていない ResourceResolver を作成します。

解決策

Asset Share Commons を、version 1.1.4 以降にアップデートします。

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

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