General improvements for Hangfire.Pro.Redis with better error messages that contain actual problem (for example “No such host is known” instead of “SocketFailure on PING”), eliminated last bits of thread pool usage when using synchronous methods (so everything will be stable now when thread pool threads are busy) and other fixes.

  • Fixed – Handle tricky case when jobs stuck in processing state after failover with data loss.
  • Fixed – Display actual exceptions instead of “SocketFailure on PING”.
  • Fixed – Don’t use thread pool threads when reconfiguring connections.
  • Fixed – Don’t use thread pool when for subscribe/unsubscribe commands.
  • Fixed – Don’t use thread pool threads when listening queues or distributed locks.
  • Fixed – Don’t depend on thread pool when disposing a connection multiplexer.
  • Fixed – Remove irrelevant information about timeout reasons from exception messages.
  • Fixed – Increase stack size of helper threads to 256KB to avoid StackOverflowException in .NET Core 3.0–5.0.
  • Fixed – Don’t throw OOM when helper thread can’t be started, signal the main writer thread instead.
  • Fixed – Catch ObjectDisposedException in storage threads with less verbose logging.
  • Fixed – Use the same IDatabase instance when any lock is acquired for better handling failovers with data loss.
  • FixedArgumentException when passing duplicate queue names to FetchNextJob.