1

We are using Sitecore 9.0.2 deployed in PAAS and CD app service is showing below error and logs are full of this kind of exceptions:

ERROR ProcessExpiredItems => System.TimeoutException: Timeout performing EVAL, inst: 0, mgr: Inactive, err: never, queue: 3933, qu: 3933, qs: 0, qc: 0, wr: 0, wq: 0, in: 0, ar: 0, IOCP: (Busy=0,Free=1000,Min=2,Max=1000),

WORKER: (Busy=3,Free=32764,Min=50,Max=32767), clientName: RD0004FFDF4447at StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor`1 processor, ServerEndPoint server)at

StackExchange.Redis.RedisBase.ExecuteSync[T](Message message, ResultProcessor1 processor, ServerEndPoint server)at StackExchange.Redis.RedisDatabase.ScriptEvaluate(String script, RedisKey[] keys, RedisValue[] values, CommandFlags flags)at Sitecore.SessionProvider.Redis.StackExchangeClientConnection.<>c__DisplayClass12_0.<Eval>b__0()at Sitecore.SessionProvider.Redis.StackExchangeClientConnection.RetryForScriptNotFound(Func1 redisOperation)at Sitecore.SessionProvider.Redis.StackExchangeClientConnection.RetryLogic(Func`1 redisOperation)at Sitecore.SessionProvider.Redis.StackExchangeClientConnection.Eval(String script, String[] keyArgs, Object[] valueArgs)at Sitecore.SessionProvider.Redis.RedisExpirationIndexWrapper.GetSessionFromExpirationIndex(DateTime signalTime, DateTime processExpirationTime)at Sitecore.SessionProvider.Redis.RedisConnectionWrapper.d__27.MoveNext()at

Sitecore.SessionProvider.Redis.RedisSessionStateProvider.OnProcessExpiredItems(DateTime signalTime)2019-03-28T13:43:08

What I want to understand is that meaning of queue: being very high i.e 3933 more than max number what does this means?

2
  • What i want to understand is that meaning of queue: being very high i.e 3933 more than max number what does this means Mar 30, 2019 at 5:18
  • Might be worth updating the question to reflect that. Although not a Sitecore specific question the queue and qu values indicate there are troubles submitting to redis from the client. Details and troubleshooting ideas can be found here: azure.microsoft.com/en-au/blog/… Mar 30, 2019 at 6:58

2 Answers 2

2

We had the same kind of issues. We were able to resolve them by tweaking the polling interval of the private session state provider and increasing the timeoutBetweenLockAttempts of the shared session state manager.

Private Session State:

<sessionState mode="Custom" cookieless="false" timeout="20" sessionIDManagerType="Sitecore.SessionManagement.ConditionalSessionIdManager" customProvider="redis">
  <providers>
    <add name="mongo" type="Sitecore.SessionProvider.MongoDB.MongoSessionStateProvider, Sitecore.SessionProvider.MongoDB" sessionType="Standard" connectionStringName="session" pollingInterval="2" compression="true" />
    <add name="mssql" type="Sitecore.SessionProvider.Sql.SqlSessionStateProvider, Sitecore.SessionProvider.Sql" sessionType="Standard" connectionStringName="session" pollingInterval="2" compression="true" />
    <add name="redis" type="Sitecore.SessionProvider.Redis.RedisSessionStateProvider, Sitecore.SessionProvider.Redis" applicationName="private" connectionString="redis.sessions" pollingInterval="230" />
  </providers>
</sessionState>

Shared session state manager:

  <sharedSessionState defaultProvider="redis" patch:source="Sitecore.Analytics.Tracking.config">
    <providers>
      <clear />
      <add name="InProc" type="System.Web.SessionState.InProcSessionStateStore" />
      <add name="redis" type="Sitecore.SessionProvider.Redis.RedisSessionStateProvider" connectionString="redis.sessions" applicationName="shared" operationTimeoutInMilliseconds="5000" pollingInterval="30" />
    </providers>
    <manager type="Sitecore.Analytics.Tracking.SharedSessionState.SharedSessionStateManager, Sitecore.Analytics">
      <param ref="tracking/sharedSessionState/config" desc="configuration" />
    </manager>
    <config type="Sitecore.Analytics.Tracking.SharedSessionState.SharedSessionStateConfig, Sitecore.Analytics">
      <param desc="maxLockAge">5000</param>
      <param desc="timeoutBetweenLockAttempts">10200</param>
    </config>
  </sharedSessionState>
1
-1
  • inst - the number of commands that have been issued in the last time slice,
  • mgr - operation that socked manager is performing,
  • queue - it's a number of in-progress operations,
  • qu - the number of in-progress operations that are in an unsent queue,
  • qs - the number of in-progress operations that have been sent to the server but a response is not yet available,
  • qc - the number of in-progress operations that have seen replies but have not yet been marked as complete due to waiting on the completion loop,
  • wr - the number of active writer bytes/activewriters
  • in - number of active readers/bytes available to be read

Not the answer you're looking for? Browse other questions tagged or ask your own question.