Problema
AEM 6.2 se atasca completamente después de instalar una corrección para implementar paquetes de aplicaciones. Después de capturar los volcados de subprocesos y abrirlos en un analizador de volcados como http://fastthread.io o IBM Thread Analyzer, el analizador de subprocesos informa de un bloqueo.
El punto muerto reportado está entre dos subprocesos como los de abajo:
Subproceso [1] llama org.apache.sling.discovery.oak.OakDiscoveryService.unbindTopologyEventListener
Subproceso [2] llama org.apache.sling.discovery.oak.pinger.OakViewChecker.discoveryLiteCheck
A veces el bloqueo puede ser un bloqueo circular con un tercer subproceso implicado.
[1]
"LeaseFailureHandler-Thread" daemon prio=5 tid=0x7f34 nid=0xffffffff in Object.wait() java.lang.Thread.State: WAITING (on object monitor) at sun.misc.Unsafe.park(Native Method) - waiting to lock <0x575a7644> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) owned by "discovery.connectors.common.runner.e8dd34be-8886-4e5d-891f-5509b4dea0f0.discoveryLiteChec k" tid=0x4,330 at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:867) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1197) at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:214) at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:290) at org.apache.sling.discovery.oak.OakDiscoveryService.unbindTopologyEventListener(OakDiscoveryService.java:368) ... at org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:144) at org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.unregisterFactory(ResourceResolverFactoryActivator.java:611) at org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.unregisterFactory(ResourceResolverFactoryActivator.java:602) at org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.checkFactoryPreconditions(ResourceResolverFactoryActivator.java:674) at org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.access$100(ResourceResolverFactoryActivator.java:79) at org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator$1.providerRemoved(ResourceResolverFactoryActivator.java:500) at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker.unregister(ResourceProviderTracker.java:224) - locked <0x35cd7613> (a java.util.HashMap) at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker.access$100(ResourceProviderTracker.java:58) at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker$1.removedService(ResourceProviderTracker.java:109) ... at org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:144) at org.apache.sling.jcr.base.AbstractSlingRepositoryManager.unregisterService(AbstractSlingRepositoryManager.java:262) at org.apache.sling.jcr.base.AbstractSlingRepositoryManager.stop(AbstractSlingRepositoryManager.java:389) ... at org.apache.felix.framework.BundleImpl.stop(BundleImpl.java:1038) at org.apache.felix.framework.BundleImpl.stop(BundleImpl.java:1024) at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService$1.handleLeaseFailure(DocumentNodeStoreService.java:413) at org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfo$1.run(ClusterNodeInfo.java:696) at java.lang.Thread.run(Thread.java:745) Locked ownable synchronizers: - locked <0x4402f4fd> (a java.util.concurrent.locks.ReentrantLock$FairSync) - locked <0x1e2230ed> (a java.util.concurrent.locks.ReentrantLock$FairSync) - locked <0x56ba270f> (a java.util.concurrent.locks.ReentrantLock$FairSync)
[2]
"discovery.connectors.common.runner.e8dd34be-8886-4e5d-891f-5509b4dea0f0.discoveryLiteCheck" daemon prio=5 tid=0x10ea nid=0xffffffff waiting for monitor entry java.lang.Thread.State: BLOCKED at org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker.getResourceProviderStorage(ResourceProviderTracker.java:364) - waiting to lock <0x35cd7613> (a java.util.HashMap) owned by "LeaseFailureHandler-Thread" tid=0x32,564 at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.createControl(ResourceResolverImpl.java:154) at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.<init>(ResourceResolverImpl.java:116) at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.<init>(ResourceResolverImpl.java:110) at org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl.getResourceResolverInternal(CommonResourceResolverFactoryImpl.java:257) at org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl.getAdministrativeResourceResolver(CommonResourceResolverFactoryImpl.java:140) at org.apache.sling.resourceresolver.impl.ResourceResolverFactoryImpl.getAdministrativeResourceResolver(ResourceResolverFactoryImpl.java:107) at org.apache.sling.discovery.oak.cluster.OakClusterViewService.getResourceResolver(OakClusterViewService.java:103) at org.apache.sling.discovery.oak.cluster.OakClusterViewService.getLocalClusterView(OakClusterViewService.java:110) at org.apache.sling.discovery.base.commons.BaseDiscoveryService.getTopology(BaseDiscoveryService.java:77) at org.apache.sling.discovery.oak.OakDiscoveryService.checkForTopologyChange(OakDiscoveryService.java:657) at org.apache.sling.discovery.oak.pinger.OakViewChecker.discoveryLiteCheck(OakViewChecker.java:232) - locked <0x740a9729> (a java.lang.Object) at org.apache.sling.discovery.oak.pinger.OakViewChecker.access$000(OakViewChecker.java:64) at org.apache.sling.discovery.oak.pinger.OakViewChecker$1.run(OakViewChecker.java:208) at org.apache.sling.discovery.base.commons.PeriodicBackgroundJob.safelyRun(PeriodicBackgroundJob.java:86) at org.apache.sling.discovery.base.commons.PeriodicBackgroundJob.run(PeriodicBackgroundJob.java:77) at java.lang.Thread.run(Thread.java:745) Locked ownable synchronizers: - locked <0x575a7644> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
Causa
Conocido error del Apache Sling: SLING-5622. Este problema solo se aplica a las instalaciones pre-SP1 de AEM 6.2. Si el SP1 ya se ha aplicado con éxito, entonces no experimentará este problema.
Resolución
Este problema solo se produce antes de instalar el SP1. Para solucionar este problema, póngase en contacto con el servicio de atención al cliente de AEM y solicite la corrección 11473. La corrección ya está incluida en Service Pack 1.