The goal of this release is to resolve the timeout issues that appear in .NET Core 2.X applications. Such behavior was caused by networking implementation of SE.Redis, which posted Redis response processing logic to thread pool’s worker threads, instead of completion ports or custom threads, due to the lack of the corresponding API in netstandard1.X specification.

When all the worker threads were waiting on Redis’ responses, there were no threads to process them and unblock threads that initiated those requests. And CLR’s “hill climbing” algorithm, that adds new threads, was able to resolve the problem only if there were no further synchronous requests to Redis.

  • Added – NETStandard 2.0 support for StackExchange.Redis to process callbacks in completion port threads.
  • Changed – StackExchange.Redis is internalized now even in .NET Standard packages.
  • ChangedRedisTransaction.Commit now works even when underlying connection was changed.
  • Fixed – Timeout issues in .NET Core 2.0 applications caused by thread pool starvation.
  • Fixed – Hangfire.Pro.Redis.StrongName package isn’t required now.

Comments