Instalar o AEM 6.3, SP1 e CFP2
Problema
Durante o teste de estresse da pesquisa de ativos do compartilhamento de ativos commons [1], ocorreu um problema de vazamento de memória ou de objeto não resolvido.
Etapas para reproduzir:
-
-
Instalar o asset-share-commons.ui.apps-1.1.2.zip (ocorre até na versão 1.4.0)
-
Instalar o asset-share-commons.ui.content-1.1.2.zip (acontece mesmo em 1.4.0)
-
Criar uma página "modelo de pesquisa" em "Compartilhamento de Ativos Commons" em Sites
-
Executar "Pesquisar" com qualquer palavra, incluindo em branco, centenas de vezes.
-
Ou executar esse comando:
# 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"
Mesmo depois que o Java Garbage Collection completo é executado, alguns objetos não podem ser liberados.
# 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
Uma análise de despejo de heap informa que um suspeito org.apache.sling.models.impl.ModelAdapterFactory carregado por org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5 [2].
- https://github.com/Adobe-Marketing-Cloud/asset-share-commons
- Uma instância de "org.apache.sling.models.impl.ModelAdapterFactory" carregado por "org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5 @ 0x9749d5d0" ocupa 1.528.764.960 (78,49%) bytes. A memória é acumulada em uma instância de "org.apache.sling.models.impl.ModelAdapterFactory" carregado por "org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5 @ 0x9749d5d0".
palavras-chave
org.apache.sling.models.impl.ModelAdapterFactory
org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5 @ 0x9749d5d0
Ambiente
AEM 6.3 SP1-CFP2 com Compartilhamento de Ativos Commons 1.1.2 e versões anteriores.
Causa
Houve um problema no Compartilhamento de Ativos Commons. A pesquisa QueryBuilder cria ResourceResolver não fechado.
Resolução
Atualizar Compartilhamento de Ativos Commons para a versão 1.1.4 ou posterior.