Microsoft distributes Microsoft SQL Server 2008 fixes as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 fix release.
Symptoms
Symptom 1
When you perform a population for a large full-text index in Microsoft SQL Server 2008 or in Microsoft SQL Server 2008 R2, you may receive an error message in the full-text log file. The number of times that this error message is logged depends on the batch size minus one. For example, on a 32-bit computer, the batch size is 1,000, so the error is logged 999 times. The error message resembles the following:Error '0x8004cb04: The in-memory wordlist is corrupted. This is due to a faulty filter, wordbreaker, or other indexing component.' occurred during full-text index population for table or indexed view '[smarsh].[dbo].[ArchiveMsgs]' (table or indexed view ID '160719625', database ID '7'), full-text key value '291484087'. Attempt will be made to reindex it.
After you receive this error message, you may also receive the following error message for the batch size minus one:
<Date> <Time> spid28s Error '0x80040e28' occurred during full-text index population for table or indexed view '[smarsh].[dbo].[ArchiveMsgs]' (table or indexed view ID '160719625', database ID '7'), full-text key value '199598211'. Attempt will be made to reindex it.
After you receive this error message, you may also receive the following error message for the batch size minus one:
<Date> <Time> spid26s Error '0x80043630: The filter daemon process MSFTEFD timed out for an unknown reason. This may indicate a bug in a filter, wordbreaker, or protocol handler.' occurred during full-text index population for table or indexed view '[smarsh].[dbo].[ArchiveMsgs]' (table or indexed view ID '160719625', database ID '7'), full-text key value '14304130'. Attempt will be made to reindex it.
Symptom 2
Additionally, you may notice that the FDHOST.exe process is malfunctioning. When you try to run a full-text query or perform a full-text population, you receive the following message back to the client.Msg 30053, Level 16, State 102, Line 1
Word breaking timed out for the full-text query string. This can happen if the wordbreaker took a long time to process the full-text query string, or if a large number of queries are running on the server. Try running the query again under a lighter load.When you examine the SQLFT* logs for this catalog, you notice this error message:
Error '0x80004005' occurred during full-text index population for table or indexed view '[DBNAME].[dbo].[TABLENAMe]' (table or indexed view ID '1204001724', database ID '5'), full-text key value '4'. Attempt will be made to reindex it.
When you examine the SQL Errorlog, you notice this error message:
Error: 30089, Severity: 17, State: 1.
The fulltext filter daemon host (FDHost) process has stopped abnormally. This can occur if an incorrectly configured or malfunctioning linguistic component, such as a wordbreaker, stemmer or filter has caused an irrecoverable error during full-text indexing or query processing. The process will be restarted automatically.Cause
This problem occurs because of a bug in the communication between the Sqlservr.exe process and the Fdhost.exe process. When batches are sent from the Sqlservr.exe process to the Fdhost.exe process, sometimes the outbound shared memory (OSM), which is the shared memory from Sqlservr.exe to Fdhost.exe, has insufficient space to fit the next column of a document. When this occurs, the Sqlservr.exe process sends a message to notify the Fdhost.exe process to process all the existing data in the OSM. While the Fdhost.exe process is processing data, the inbound shared memory (ISM), which is the shared memory from Fdhost.exe to Sqlservr.exe, may become full. In this situation, the Fdhost.exe process sends a "rewind" message to the Sqlservr.exe process. This message requests that the Sqlservr.exe process resend the last document from the first column. However, when the Sqlservr.exe process starts to send the document again, it starts from column 2 instead of column 1. This causes the error messages that are mentioned in the "Symptoms" section.
Resolution
Cumulative update information
SQL Server 2008 R2 Service Pack 2
The fix for this issue was first released in Cumulative Update 3. For more information about how to obtain this cumulative update package for SQL Server 2008 R2 Service Pack 2, click the following article number to view the article in the Microsoft Knowledge Base:
2754552 Cumulative update package 3 for SQL Server 2008 R2 Service Pack 2 Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 R2 Service Pack 2 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
2730301 The SQL Server 2008 R2 builds that were released after SQL Server 2008 R2 Service Pack 2 was released
SQL Server 2008
The fix for this issue was first released in Cumulative Update 4 for the release version of SQL Server 2008. For more information about how to obtain this cumulative update package for SQL Server 2008, click the following article number to view the article in the Microsoft Knowledge Base:
963036 Cumulative update package 4 for SQL Server 2008Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
956909 The SQL Server 2008 builds that were released after SQL Server 2008 was released
SQL Server 2008 Service Pack 1
The fix for this issue was first released in Cumulative Update 1 for SQL Server 2008 Service Pack 1. For more information about how to obtain this cumulative update package for SQL Server 2008, click the following article number to view the article in the Microsoft Knowledge Base:
969099 Cumulative update package 1 for SQL Server 2008 Service Pack 1Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
970365 The SQL Server 2008 builds that were released after SQL Server 2008 Service Pack 1 was released
Workaround
To work around this problem, increase the ISM size. To do this, configure the ISM_Size variable by using the sp_fulltext_service stored procedure.
To show the current value: sp_fulltext_service 'ism_size' To change the value to 16: sp_fulltext_service 'ism_size',@value=16 Note: You will need to restart the SQL Server service for this change to take effect.Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
More Information
This problem does not prevent the population from completing. The full-text index has built-in retry logic that will continue to retry the failed entry until it succeeds. Therefore, you can safely ignore the error messages. The only known potential negative side effects are that it may take longer than usual for the population to complete and the full-text log growth increases significantly for the reporting of the error.
The retry logic in the source code causes an eventual successful population without corruption to the index, despite the error message that indicates possible corruption. If you are running into Symptom #2 described above, then full-text search queries or population will not work, since the FDHOST component is not in a correct state to function and you will need to apply this cumulative update.More information about cumulative update package 4 for SQL Server 2008
For more information about what files are changed, and for information about any prerequisites to apply the cumulative update package that contains the hotfix that is described in this Microsoft Knowledge Base article, click the following article number to view the article in the Microsoft Knowledge Base:
963036 Cumulative update package 4 for SQL Server 2008
More information about cumulative update package 1 for SQL Server 2008 Service Pack 1
For more information about what files are changed, and for information about any prerequisites to apply the cumulative update package that contains the hotfix that is described in this Microsoft Knowledge Base article, click the following article number to view the article in the Microsoft Knowledge Base:
969099 Cumulative update package 1 for SQL Server 2008 Service Pack 1
References
For more information about the list of builds that are available after the release of SQL Server 2008, click the following article number to view the article in the Microsoft Knowledge Base:
956909 The SQL Server 2008 builds that were released after SQL Server 2008 was released For more information about the Incremental Servicing Model for SQL Server, click the following article number to view the article in the Microsoft Knowledge Base:
935897 An Incremental Servicing Model is available from the SQL Server team to deliver hotfixes for reported problems For more information about the naming schema for SQL Server updates, click the following article number to view the article in the Microsoft Knowledge Base:
822499 New naming schema for Microsoft SQL Server software update packages For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:
824684 Description of the standard terminology that is used to describe Microsoft software updates