Symptom
Low Tomcat Available Threads Percentage in SAP Commerce Cloud environment, it might be related to one or two application pods.
The issue is not related to throughput.
In dynatrace we can see a lot of threads blocked at ReentrantReadWriteLock
Unsafe.park Built-In JRE | jdk.internal.misc LockSupport.park Built-In JRE | java.util.concurrent.locks AbstractQueuedSynchronizer.acquire Built-In JRE | java.util.concurrent.locks AbstractQueuedSynchronizer.acquireShared Built-In JRE | java.util.concurrent.locks ReentrantReadWriteLock$ReadLock.lock Built-In JRE | java.util.concurrent.locks SelectableConcurrentHashMap$Segment.get Java | net.sf.ehcache.store.chm SelectableConcurrentHashMap.get Java | net.sf.ehcache.store.chm MemoryStore.get Java | net.sf.ehcache.store Cache.get Java | net.sf.ehcache EHCacheRegion.getWithLoader Java | de.hybris.platform.regioncache.region.impl DefaultCacheController.getWithLoader Java | de.hybris.platform.regioncache RegionCacheAdapter.getOrAddUnit Java | de.hybris.platform.cache.impl Transaction$GlobalCacheAdapter.getOrAddUnit Java | de.hybris.platform.tx AbstractCacheUnit.get Java | de.hybris.platform.cache FlexibleSearchCacheUnit.myGet Java | de.hybris.platform.jalo.flexiblesearch |
In open search log the error looks like
{"origin":"catalina","timeMillis":1743087534106,"thread":"hybrisHTTP48","level":"SEVERE","loggerName":"org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/].[DispatcherServlet]","threadId":117882,"threadPriority":5,"message":"Servlet.service() for servlet [DispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.StackOverflowError] with root cause","contextMap":{"sourceClassName":"org.apache.catalina.core.StandardWrapperValve","sourceMethodName":"invoke"},"thrown":{"localizedMessage":"","message":"","name":"java.lang.StackOverflowError","extendedStackTrace":[{"class":"java.util.stream.ReferencePipeline$2$1","method":"begin","file":"ReferencePipeline.java","line":173},{"class":"java.util.stream.Sink$ChainedReference","method":"begin","file":"Sink.java","line":253},{"class":"java.util.stream.Sink$ChainedReference","method":"begin","file":"Sink.java","line":253},{"class":"java.util.stream.ReferencePipeline$2$1","method":"begin","file":"ReferencePipeline.java","line":173},{"class":"java.util.stream.AbstractPipeline","method":"copyInto","file":"AbstractPipeline.java","line":508},{"class":"java.util.stream.AbstractPipeline","method":"wrapAndCopyInto","file":"AbstractPipeline.java","line":499},{"class":"java.util.stream.ReduceOps$ReduceOp","method":"evaluateSequential","file":"ReduceOps.java","line":921},{"class":"java.util.stream.AbstractPipeline","method":"evaluate","file":"AbstractPipeline.java","line":234},{"class":"java.util.stream.ReferencePipeline","method":"reduce","file":"ReferencePipeline.java","line":662},{"class":"de.hybris.platform.jalo.flexiblesearch.internal.ReadOnlyConditionsHelper","method":"checkHints","file":"ReadOnlyConditionsHelper.java","line":247},{"class":"de.hybris.platform.jalo.flexiblesearch.internal.ReadOnlyConditionsHelper","method":"couldUseReadOnlyDataSource","file":"ReadOnlyConditionsHelper.java","line":222},{"class":"de.hybris.platform.jalo.flexiblesearch.internal.FlexibleSearchExecutor","method":"getDataSourceForQuery","file":"FlexibleSearchExecutor.java","line":89},{"class":"de.hybris.platform.jalo.flexiblesearch.FlexibleSearch","method":"createCacheKey","file":"FlexibleSearch.java","line":1874},{"class":"de.hybris.platform.jalo.flexiblesearch.FlexibleSearch","method":"executeSearchUsingFlexibleSearchDialect","file":"FlexibleSearch.java","line":1743},{"class":"de.hybris.platform.jalo.flexiblesearch.FlexibleSearch","method":"search","file":"FlexibleSearch.java","line":1473},{"class":"de.hybris.platform.jalo.flexiblesearch.FlexibleSearch","method":"search","file":"FlexibleSearch.java","line":1464},{"class":"de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService$3","method":"execute","file":"DefaultFlexibleSearchService.java","line":550},{"class":"de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService$3","method":"execute","file":"DefaultFlexibleSearchService.java","line":528},{"class":"de.hybris.platform.servicelayer.session.impl.DefaultSessionService","method":"executeInLocalView","file":"DefaultSessionService.java","line":82},{"class":"de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService","method":"getJaloResult","file":"DefaultFlexibleSearchService.java","line":527},{"class":"de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService","method":"search","file":"DefaultFlexibleSearchService.java","line":180},{"class":"de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService","method":"search","file":"DefaultFlexibleSearchService.java","line":324} |
Read more...
Environment
SAP Commerce Cloud
Product
SAP Commerce Cloud 2211
Keywords
AbstractQueuedSynchronizer, ReentrantReadWriteLock, Tomcat Available Threads Percentage low alert, java.lang.StackOverflowError , KBA , CEC-SCC-CLA-ENV-EMG , Environment Management , Problem
About this page
This is a preview of a SAP Knowledge Base Article. Click more to access the full version on SAP for Me (Login required).Search for additional results
Visit SAP Support Portal's SAP Notes and KBA Search.