One of the major blockers we faced after we upgraded our implementation from Sitecore 7.2 U6 to Sitecore 8.2 Initial release was, we noticed that Sitecore search Master index was not getting updated. Master index was configured to use following indexing strategy,
<strategies hint="list:AddStrategy"> <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/intervalAsyncMaster" /> </strategies>
At the same time we noticed Sitecore search indexes which was configured with other indexing strategies like intervalAsyncCore, onPubPublishEndAsync were getting updated fine.
We then configured the CrawlerLog in Debug mode to get further details, and found that for Core Index, it was writing below entries in the log every 1 minute (the interval configured for intervalAsync). But for master index there was no such entries, although similar entries were expected to be written every 5 seconds (interval configured for intervalAsyncMaster)
14376 15:40:51 DEBUG [Index=sitecore_core_index] IntervalAsynchronousStrategy executing. 14376 15:40:51 DEBUG [Index=sitecore_core_index] Event Queue is empty. Incremental update returns
We then tried to check whether EventQueue was getting processed correctly and followed this blog, and found that EventQueue was getting processed fine, but still index was not getting updated
We then raised a Sitecore support ticket and also shared with them the memory dump of w3wp process for further analysis. Sitecore then after the analyzing the memory dump came to conclusion that some changes related ‘AlarmClock’ implementation in Sitecore 8.2 was causing this issue.
The ‘AlarmClock’ instance must raise the ‘Ring’ event every 5 seconds and trigger the ‘IntervalAsynchronousStrategy’ (5 seconds is the interval configured for intervalAsyncMaster). If the interval between creation and initialization of ‘AlarmClock’ is more than the ‘interval‘ of ‘intervalAsyncStrategy’, then issue used to occur and this was the case with intervalAsyncMaster. While of intervalAsyncCore it was working fine, because the interval was 1 minute. Sitecore then asked us to change the intervalAsyncMaster interval to confirm the issue. When we changed it to 1 minute the Master index started getting updated.
Sitecore then worked a patch #161393, which fixed the issue and we reverted the inveralAsyncMaster interval back to default value of 5 seconds.