Coveo for Sitecore 5 is now available!

Sitecore 8.2 With WFFM Refuses to Start After Installing Coveo for Sitecore

This issue affects Sitecore version 8.2 with the Web Forms for Marketers (WFFM) module.

Symptoms

After installing Coveo for Sitecore, Sitecore refuses to start.

In the Sitecore logs, you see that the Coveo master index is initializing but never finishes.

17156 14:29:57 INFO  Cache created: 'filesystem[blobIDs]' (max size: 500KB, running total: 878MB)17156 14:29:57 INFO  Cache created: 'SqlDataProvider - Property data(core)' (max size: 500KB, running total: 879MB)
17156 14:29:57 INFO  Cache created: '[FieldReaderCache, Id: a97a7de6-d60e-48b0-bc75-9cff5e795ece]' (max size: 5MB, running total: 884MB)
17156 14:29:57 INFO  Cache created: '[FieldReaderCache, Id: 6b902e13-4a6f-4e78-bea0-469f046e3d44]' (max size: 5MB, running total: 889MB)
13136 14:29:57 INFO  Cache created: 'SqlDataProvider - Property data(master)' (max size: 500KB, running total: 889MB)
13136 14:29:57 INFO  Cache created: 'SqlDataProvider - Property data(web)' (max size: 500KB, running total: 890MB)
17156 14:29:57 INFO  Cache created: '[FieldReaderCache, Id: defaultFieldReaderMap]' (max size: 5MB, running total: 895MB)
17156 14:29:57 INFO  Initializing index "Coveo_master_index"...
ManagedPoolThread #16 14:29:58 INFO  Trying to load XML configuration /App_Config/Security/Domains.config
6404 14:30:12 INFO  Cache created: 'Task Manager - tasks' (max size: 100 bytes, running total: 895MB)
16664 14:30:12 INFO  Cache created: 'ReportingStorageProviderProperties.Properties' (max size: 10MB, running total: 905MB)
12020 14:30:12 INFO  Cache created: 'ExperienceAnalytics.Segments' (max size: 20MB, running total: 925MB)
ManagedPoolThread #3 15:02:50 INFO  Health.PrivateBytes: 953 585 664

Cause

The problem is caused by the Sitecore indexes property store events handling.

  1. When Sitecore is initializing, it reads the search indexes configuration. This method has a lock to avoid 2 threads doing it at the same time.
  2. Sitecore then initializes each search index.
  3. When a Coveo for Sitecore search index is initialized, it reads and writes a value in the property store. This triggers events.
  4. WFFM has an event handler that is run when the property store is accessed. WFFM needs a search index in this event handler.
  5. WFFM tries to get the search index. At this point, the search indexes are still initializing. So the call to get the search index tries to initialize the search indexes by reading the search indexes configuration.
  6. This creates a deadlock, preventing Sitecore from initializing.

Resolution

The issue has been reported to Sitecore support and will be fixed in a future Sitecore release. However, a fix is available. For more details on the resolution of this issue, contact Sitecore Support. The issue tracking number isĀ 137437.