Sitecore 8.2 With WFFM Refuses to Start After Installing Coveo for Sitecore
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.
-
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.
-
Sitecore then initializes each search index.
-
When a Coveo for Sitecore search index is initialized, it reads and writes a value in the property store. This triggers events.
-
WFFM has an event handler that’s run when the property store is accessed. WFFM needs a search index in this event handler.
-
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.
-
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.