Recently a customer ran into an issue where they had successfully installed SQL Server 2008 SP1 on a 2 node Windows 2008 cluster. When they went to restore a database that was given to them, they found out the database was created with the new SQL 2008 FileStream feature and couldn’t restore the database on their newly installed SQL 2008 SP1 clustered instance. So they went to enable FileStream through the SQL Configuration Manager. After clicking the check box “Enable FILESTREAM for Transact-SQL access” and “Enable FILESTREAM for file I/O streaming access”, then attempting to apply their selections they encountered a message in the dialog.

image

The message appears below the last checkbox (my system doesn’t have the error, but I wanted to show the dialog). The actual message:

"A previous filestream configuration attempt was incomplete. Filestream may be in an inconsistent state until re-configured"

In addition, if you look in the Application Event log you will see an Access Violation was raised:

Faulting application wmiprvse.exe, version 6.0.6002.18005, time stamp 0x49e0274f, faulting module CLUSAPI.dll, version 6.0.6001.18000, time stamp 0x4791acce, exception code 0xc0000005, fault offset 0x000000000001df73, process id 0xca4, application start time 0x01cb28f4bcfeed65.

Cause

This is a bug in the SQL Server 2008 post-setup FileStream Enablement code. We assume the cluster resources are physical disks and not mount points. This causes a NULL value to be returned to the hResult, which we then pass to the Cluster API which causes an AV. We have only seen this problem when using Veritas Storage Foundation (in this case 5.1 SP1 of VSF) mountpoints.

Workaround

1. Uninstall and Reinstall SQL Server 2008 SP1 and enable FileStream as part of the setup. It will succeed. Make sure you backup all system and user databases before uninstalling and reinstalling SQL Server.

2. Change storage so that it doesn’t use Veritas mountpoints

3. This problem will be fixed in CU10 for SQL 2008 SP1 due out in September 2010. This will allow FileStream enablement post-setup when using mountpoints.

Thanks

Eric Burgess

SQL Server Escalation Services.