Hi Team,
I am getting the below error in our live environment and not getting in lower environments and not sure when are we getting and how to replicate them.
We are using AEM 6.5.19. Please let us know if anyonefacing the same and suggest a fix for this please
07.03.2024 08:52:49.225 *INFO* [FelixStartLevel] org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl Unclosed ResourceResolver was created here:
java.lang.Exception: Opening Stacktrace
at org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl$ResolverReference.<init>(CommonResourceResolverFactoryImpl.java:538)
at org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl.register(CommonResourceResolverFactoryImpl.java:228)
at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.<init>(ResourceResolverImpl.java:113)
at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.<init>(ResourceResolverImpl.java:106)
at org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl.getResourceResolverInternal(CommonResourceResolverFactoryImpl.java:273)
at org.apache.sling.resourceresolver.impl.CommonResourceResolverFactoryImpl.getResourceResolver(CommonResourceResolverFactoryImpl.java:183)
at org.apache.sling.resourceresolver.impl.ResourceResolverFactoryImpl.getResourceResolver(ResourceResolverFactoryImpl.java:98)
at com.day.cq.dam.indd.process.INDDMediaExtractProcess.getResourceResolver(INDDMediaExtractProcess.java:427)
at com.day.cq.dam.indd.process.INDDMediaExtractProcess.execute(INDDMediaExtractProcess.java:164)
at com.day.cq.workflow.compatibility.CQWorkflowExtProcessProxy.execute(CQWorkflowExtProcessProxy.java:66)
at com.adobe.granite.workflow.core.util.WEPProxyHolder.execute(WEPProxyHolder.java:42)
at com.adobe.granite.workflow.core.job.JobHandler.process(JobHandler.java:292)
at org.apache.sling.event.impl.jobs.JobConsumerManager$JobConsumerWrapper.process(JobConsumerManager.java:502)
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.startJob(JobQueueImpl.java:351)
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.access$100(JobQueueImpl.java:60)
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl$1.run(JobQueueImpl.java:287)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Views
Replies
Total Likes
Hi @UdayapoornimaRa
This seems similar to https://forums.adobe.com/thread/2343431
Views
Replies
Total Likes
The error you're encountering in your live environment on AEM 6.5.19, related to an unclosed ResourceResolver
, is a common issue that can lead to memory leaks and performance degradation if not addressed properly. This error indicates that a ResourceResolver
instance was created but not properly closed after its use. The ResourceResolver
should always be closed in a finally
block or using a try-with-resources statement to ensure it gets closed even if an exception occurs.
Since you're not experiencing this issue in lower environments, it might be related to specific conditions or workflows in your live environment. It could be triggered by custom code, workflows, or specific asset processing tasks that are not executed or tested in your lower environments.
To address this issue, you should:
Review Custom Code: Check any custom code or scripts that obtain a ResourceResolver
instance, especially around the areas indicated by the stack trace (e.g., custom workflow steps, event listeners, or scheduled jobs). Ensure that every ResourceResolver
is properly closed.
Use Try-With-Resources: For any new code or when updating existing code, use the try-with-resources statement to manage the ResourceResolver
. This Java feature automatically handles the closing of resources and makes your code cleaner and safer. Here's an example pattern for using ResourceResolver
within a try-with-resources statement:
try (ResourceResolver resolver = resourceResolverFactory.getServiceResourceResolver(paramMap)) {
// Your code that uses the resolver here
} catch (LoginException e) {
// Handle potential exceptions here
}
Investigate Workflows and Processes: Given the stack trace points to INDDMediaExtractProcess
, review any custom Adobe InDesign document (INDD) media extraction processes you have. There might be an oversight in resource management within these processes.
Enable Resource Resolver Leak Detection: If you continue to face difficulties pinpointing the issue, consider enabling the Resource Resolver Leak Detection feature in OSGi. This can help identify where resource resolvers are not being closed. -> https://experienceleague.adobe.com/en/docs/experience-cloud-kcs/kbarticles/ka-16548
ResourceResolver
API and create unit and integration tests to ensure resource resolvers are always closed. Testing in an environment that closely mirrors your live setup can help identify issues that only occur under specific conditions.Upgrade to AEM 6.5's latest Service Pack: If you find out that this exception is coming from the platform itself, please install the latest service pack, as most previous product problems are fixed and enhanced.
Views
Likes
Replies