AB Testing: RemoteCacheSignal; sometimes the timer's callback was called before the timer completed initialization

Found in

EPiServer.Marketing.Testing 2.6.6

Fixed in

EPiServer.Marketing.Testing 2.6.8

(Or a related package)

Created

Jun 23, 2021

Updated

Jul 02, 2021

State

Closed, Fixed and tested


Description

The System.Threading.Timer in RemoteCacheSignal was initialized with dueTime set to 0 in RemoteCacheSignal.Monitor() method. This sometimes led to the Timer's callback being called immediately when the Timer object had not finished initialization and some of its properties were still null. However, the callback tried to access the Timer with Change() method and this led to a null reference exception and sometimes crashed the web server.