Microsoft today released a number of communications around the long-standing Windows Home Server Data Corruption bug, providing more details on the cause of the bug and outlining plans to release a fix for the issue in June 2008.
In a post today on the Windows Home Server Team blog, the team stated that Microsoft now understood the bug “really well”, and that whilst a fix for the bug had been partly coded, we should not expect to see a final fix released until June at the earliest.
Microsoft also updated the Knowledge Base article covering the issue today, with more detailed information on the bug, and reiterating their belief that “most users are unlikely to be affected”. However, the article now states that the issue can occur when files are transferred as well as edited and saved within identified applications.
As many have suspected, the bug is related to Windows Home Server’s Drive Extender technology, which is one of the major areas of innovation within Windows Home Server, managing file transfer across multiple drives, and negating the need for drive letters. Specifically, the bug occurs within WHS’ file system mini-filter driver, as stated in the KB article:
Windows Home Server uses a file system mini-filter driver in addition to the NTFS file system to implement Shared Folders storage technology. File system mini-filter drivers are an extensibility mechanism provided by Windows to enable storage scenarios. For distributing data across the different hard drives managed by Windows Home Server, the Windows Home Server mini-filter driver redirects I/O between files that are stored on the main hard drive and files that are stored on other hard drives. This redirection mechanism is only enabled when Windows Home Server is managing the Shared Folder storage of multiple physical hard drives. A bug has been discovered in the redirection mechanism which, in certain cases, depending on application use patterns, timing, and load, may cause interactions between NTFS, the Memory Manager, and the Cache Manager to get out of sync causing corrupted data being written to files.