SAP Knowledge Base Article - Preview

3373916 - Session persistent failed

Symptom

1. In Kibana lots of errors like "Session xxxx not persisted, timeout during persisting" can be seen.

2. Following blocked threads can be seen in thread dumps

"AsyncSessionPersister-master-105" prio=5 tid=0x105 nid=0x69 WAITING     owned by hybrisHTTP59 Id=24869 - stats: cpu=565311 blk=-1 wait=-1
 java.lang.Thread.State: WAITING
    at java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.8/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211)
    at java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:715)
    at java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:938)
    at java.base@17.0.8/java.util.concurrent.locks.ReentrantLock$Sync.lock(ReentrantLock.java:153)
    at java.base@17.0.8/java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:322)
    at java.base@17.0.8/sun.security.ssl.SSLSocketOutputRecord.deliver(SSLSocketOutputRecord.java:288)
    at java.base@17.0.8/sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:1308)
    at com.microsoft.sqlserver.jdbc.TDSChannel.write(IOBuffer.java:2121)
     - locked sun.security.ssl.SSLSocketImpl$AppOutputStream@19d48337
    at com.microsoft.sqlserver.jdbc.TDSWriter.flush(IOBuffer.java:4476)
    at com.microsoft.sqlserver.jdbc.TDSWriter.writePacket(IOBuffer.java:4378)
    at com.microsoft.sqlserver.jdbc.TDSWriter.endMessage(IOBuffer.java:3413)
    at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:7985)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:618)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:540)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7620)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:3916)
     - locked java.lang.Object@4010a1a1
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:268)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:242)
    at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:459)
    at de.hybris.platform.jdbcwrapper.interceptor.PreparedStatementWithJDBCInterceptor.lambda$executeQuery$3(PreparedStatementWithJDBCInterceptor.java:68)
    at de.hybris.platform.jdbcwrapper.interceptor.PreparedStatementWithJDBCInterceptor$$Lambda$302/0x000000080059b020.get(Unknown Source)
    at de.hybris.platform.jdbcwrapper.interceptor.recover.SQLRecoverableExceptionHandler.passThrough(SQLRecoverableExceptionHandler.java:93)
    at de.hybris.platform.jdbcwrapper.interceptor.recover.SQLRecoverableExceptionHandler.get(SQLRecoverableExceptionHandler.java:51)
    at de.hybris.platform.jdbcwrapper.interceptor.JDBCInterceptor.get(JDBCInterceptor.java:61)
    at de.hybris.platform.jdbcwrapper.interceptor.PreparedStatementWithJDBCInterceptor.executeQuery(PreparedStatementWithJDBCInterceptor.java:68)
    at de.hybris.platform.jdbcwrapper.PreparedStatementImpl.executeQuery(PreparedStatementImpl.java:190)
    at de.hybris.platform.jalo.flexiblesearch.internal.FlexibleSearchExecutor.execute(FlexibleSearchExecutor.java:238)
    at de.hybris.platform.jalo.flexiblesearch.FlexibleSearch.executeSearch(FlexibleSearch.java:2193)
    at de.hybris.platform.jalo.flexiblesearch.FlexibleSearch.executeSearch(FlexibleSearch.java:2213)
    at de.hybris.platform.jalo.flexiblesearch.FlexibleSearchCacheUnit.compute(FlexibleSearchCacheUnit.java:71)
    at de.hybris.platform.cache.AbstractCacheUnit.privateGetNoLock(AbstractCacheUnit.java:297)
    at de.hybris.platform.cache.AbstractCacheUnit.privateGet(AbstractCacheUnit.java:270)
    at de.hybris.platform.cache.AbstractCacheUnit.get(AbstractCacheUnit.java:172)
    at de.hybris.platform.jalo.flexiblesearch.FlexibleSearchCacheUnit.myGet(FlexibleSearchCacheUnit.java:158)
    at de.hybris.platform.jalo.flexiblesearch.FlexibleSearch.executeSearchUsingFlexibleSearchDialect(FlexibleSearch.java:1741)
    at de.hybris.platform.jalo.flexiblesearch.FlexibleSearch.search(FlexibleSearch.java:1468)
    at de.hybris.platform.jalo.flexiblesearch.FlexibleSearch.search(FlexibleSearch.java:1459)
    at de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService$3.execute(DefaultFlexibleSearchService.java:533)
    at de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService$3.execute(DefaultFlexibleSearchService.java:511)
    at de.hybris.platform.servicelayer.session.impl.DefaultSessionService.executeInLocalView(DefaultSessionService.java:82)
    at de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService.getJaloResult(DefaultFlexibleSearchService.java:510)
    at de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService.search(DefaultFlexibleSearchService.java:180)
    at de.hybris.platform.servicelayer.search.impl.DefaultFlexibleSearchService.search(DefaultFlexibleSearchService.java:324)
    at de.hybris.platform.servicelayer.web.session.StoredHttpSessionDao.findByIds(StoredHttpSessionDao.java:65)
    at de.hybris.platform.servicelayer.web.session.persister.AsyncSessionPersisterRunnable.provideStoredHttpSessionModelMap(AsyncSessionPersisterRunnable.java:231)
    at de.hybris.platform.servicelayer.web.session.persister.AsyncSessionPersisterRunnable.persistSessions(AsyncSessionPersisterRunnable.java:206)
    at de.hybris.platform.servicelayer.web.session.persister.AsyncSessionPersisterRunnable.persistsSessionsFromQueue(AsyncSessionPersisterRunnable.java:130)
    at de.hybris.platform.servicelayer.web.session.persister.AsyncSessionPersisterRunnable.run(AsyncSessionPersisterRunnable.java:80)
    at de.hybris.platform.core.AbstractTenant$5.run(AbstractTenant.java:2549)
    at de.hybris.platform.core.TenantAwareThreadFactory$1.internalRun(TenantAwareThreadFactory.java:163)
    at de.hybris.platform.core.threadregistry.RegistrableThread.run(RegistrableThread.java:124)
   ......

"hybrisHTTP508" prio=5 tid=0x111439 nid=0x1b34f TIMED_WAITING - stats: cpu=2336 blk=-1 wait=-1
 java.lang.Thread.State: TIMED_WAITING
    at java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.8/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    at java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1672)
    at java.base@17.0.8/java.util.concurrent.ArrayBlockingQueue.offer(ArrayBlockingQueue.java:396)
    at de.hybris.platform.servicelayer.web.session.persister.AsyncSessionPersister.persist(AsyncSessionPersister.java:197)
    at de.hybris.platform.servicelayer.web.session.DefaultHybrisSpringSessionRepositoryFactory$FilteringSessionPersister.persist(DefaultHybrisSpringSessionRepositoryFactory.java:109)
    at de.hybris.platform.servicelayer.web.session.CachedPersistedSessionRepository.saveCachedPersistedSession(CachedPersistedSessionRepository.java:128)
    at de.hybris.platform.servicelayer.web.session.CachedPersistedSessionRepository.save(CachedPersistedSessionRepository.java:65)
    at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.commitSession(SessionRepositoryFilter.java:249)
    at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.access$100(SessionRepositoryFilter.java:221)
    at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper$SessionCommittingRequestDispatcher.include(SessionRepositoryFilter.java:452)
    at org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterRequestDispatcher.include(HeaderWriterFilter.java:176)
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:163)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:316)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1406)
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1150)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:489)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:583)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:212)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:156)
    ......
3. Storefront performance is getting slow.

Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental.


Read more...

Environment

All Sap Commerce Cloud versions

Product

SAP Commerce Cloud all versions

Keywords

session,AsyncSessionPersister , KBA , CEC-SCC-PLA-PL , Platform , 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.