I recently noticed my NSB log files where growing up significantly because of a warning I have never noticed before.
2017-03-21 12:17:50.554 WARN NServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver Failed to fetch timeouts from the timeout storage System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet. à NServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver.Poll(Object obj) dans C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Timeout\Hosting\Windows\TimeoutPersisterReceiver.cs:ligne 90 à System.Threading.Tasks.Task.Execute() 2017-03-21 12:17:50.560 INFO NServiceBus.CircuitBreakers.RepeatedFailuresOverTimeCircuitBreaker The circuit breaker for TimeoutStorageConnectivity is now in the armed state
This warning appears every seconds so you can imagine the size of my log files.
I noticed this warning when I adjust the NServiceBus log level because I had several unexplained crash in my service. I have found that this warning makes my service crashing after a while causing a FatalExecutionEngineError exception (see screenshot below).
I am using NServiceBus 5.2.21.
Does anyone can help me getting rid of this warning?
I solved my problem using an older version of NServiceBus (5.2.14). Above this version, the problem appears and everything works fine from and below this version.
According to my tests, it seems that crashes don't appear when NServiceBus logging feature is disabled. As I am not using Timeouts in NServiceBus, everything works fine when logs are disabled. It looks like a conccurent access issue between thread occurs.
Maybe this bug has never been seen since this is an old version and as NServiceBus current version is 6.x (7.x coming), it has never been fixed.