We are using AEM6.2SP1 and during tree activation we see a significant drawdowns of performance.
During thread dump analyzing we see a lot of:
java.lang.Thread.State: BLOCKED at com.day.cq.auth.impl.cug.CugSupportImpl.updateRegistration(CugSupportImpl.java:478) ...
We have found that CugSupportImpl#updateRegistation method (Please note that this method contains synchronized block) is invoked by org/apache/sling/api/resource/ResourceResolverMapping/CHANGED event.
It seems that this event is triggered by MapEntries. This event handler is trigger org/apache/sling/api/resource/ResourceResolverMapping/CHANGED on each node creation under /var/eventing/jobs/assigned/...
Please see events log:
- Dispatcher Flush Agent enabled on publish instance.
- Dispatcher Flush Agent disabled on publish instance.
This events are appeared after activation of "/etc/tags/workflow/system" node.
It seems that org/apache/sling/api/resource/ResourceResolverMapping/CHANGED event should NOT be triggered during activation.
We performed performance test with disabled CugSupportImpl component and see much better results.
Could someone comment such behavior?
Is it make sense to trigger each time org/apache/sling/api/resource/ResourceResolverMapping/CHANGED event?
How can we avoid calls to CugSupportImpl#updateRegistration during dispatcher flush event?
Solved! Go to Solution.