Wednesday, February 15, 2012

Is there bug in Windows Server 2008 R2 DFS Management Console?

DFS (Distributed File System) Management Consoles on my servers running Windows Server 2008 R2 are acting weird when I try to add new replicated folders.

Here is the scenario of what happened.

I have 4 Windows Server 2008 R2 servers installed with DFS service.  Let’s call them dfsserver1, dfssever2, dfsserver3 and dfsserver4.  There are 2 AD sites and let’s call them adsite1 and adsite2.  dfsserver1 and dfssever2 are in adsite1.  dfsserver3 and dfssever3 are in adsite2.

AD Sites adsite1 adsite2
DFS Servers dfsserver1
dfsserver2
dfsserver3
dfsserver4

There are 2 replication groups and let’s call them rg1 and rg2. Members of rg1 are dfsserver1 and dfsserver3.  Members of rg2 are dfsserver2 and dfsserver4.

DFS Servers at adsite1 Replication Groups DFS Servers at adsite2
dfsserver1

<--- rg1 --->

dfsserver3
dfsserver1

<--- rg2 --->

dfsserver3

Now comes the weird behaviours.

On dfsserver1, I tried to add a new replicated folder using the "New Replicated Folders" wizard.  Going through the wizard, I select dfsserver1 as the primary member, select the folder to replicate on server.

Primary Member dfs1

Add Folder to Replicate Dialog dfs1

I select dfsserver3 as the other member, click on the Edit button.

Local Path on Other members dfs3

On the Edit dialog box, I select the Enabled radio button, click on the Browse button and select the folder to be replicated on dfsserver3.

Add Other Member Folder Dialog dfs3

Click OK two times to confirm and I get "Check Path" error. The error description is "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."

Task add path error

Error add path error

I am sure that there is nothing wrong with the path and permission.  Now if I type in the path for the folder to be replicated on dfsserver3 instead of using the Browse button to select. I do not encounter the error!

Now if on dfsserver1, I select dfsserver3 as the primary member and select the folder to replicate by clicking on the Browse button and selecting the replicated folder, the DFS Management Console will crash.  This will not happen if I enter the path manually without clicking on the Browse button.

Add Folder to Replicate Dialog dfs3

The following is the error stack when the DFS Management Console crashed.

FX:{671ee405-c969-4af9-ad1b-65e96b3b9a10}
Exception has been thrown by the target of an invocation.

System.Reflection.TargetInvocationException

at Microsoft.ManagementConsole.Internal.SnapInMessagePumpProxy.OnThreadException(Object sender, ThreadExceptionEventArgs e)
at System.Windows.Forms.Application.ThreadContext.OnThreadException(Exception t)
at System.Windows.Forms.Control.WndProcException(Exception e)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
at Microsoft.ManagementConsole.Internal.ConsoleDialogHost.ShowDialog(WaitCursor waitCursor, ShowDialogCallback callback)
at Microsoft.ManagementConsole.Advanced.Console.ShowDialog(Form form)
at Microsoft.RemoteFileSystems.Management.SnapIn.BaseWizardForm.StartWizardImpl(Object owner, Boolean showModal)
at Microsoft.RemoteFileSystems.Management.SnapIn.ReplicaSetScopeNode.OnSyncAction(SyncAction action, SyncStatus status)
at Microsoft.ManagementConsole.ScopeNode.DoAction(Int32 actionId, IRequestStatus requestStatus)
at Microsoft.ManagementConsole.SnapIn.ProcessRequest(Request request)
at Microsoft.ManagementConsole.Internal.SnapInClient.Microsoft.ManagementConsole.Internal.IMessageClient.ProcessRequest(Request request)
at Microsoft.ManagementConsole.Internal.IMessageClient.ProcessRequest(Request request)
at Microsoft.ManagementConsole.Executive.RequestStatus.BeginRequest(IMessageClient messageClient, RequestInfo requestInfo)
at Microsoft.ManagementConsole.Executive.SnapInRequestOperation.ProcessRequest()
at Microsoft.ManagementConsole.Executive.Operation.OnThreadTransfer(SimpleOperationCallback callback)

I get the same behaviour if I do it on dfsserver3 but with the primary member swapped.

However, the error will not happen if I am doing it with servers within the same AD site (e.g. dfsserver1 with dfsserver2 and dfsserver3 with dfsserver4).

I also do not have problem with the DFS Management Console on my Windows 7 and Windows Server 2008 (32 bit). I have tried using another Windows Server 2008 R2 with the DFS Management Console installed and get the same exact error.

I have tried the Update for the DFS Replication (DFSR) Management interface (http://support.microsoft.com/kb/2607047) but still no luck.

I have ran the DFSR Diagnostic report and replication is working properly.

What I find it weird is I don't get the error if I type in the path of the replicated folder manually. But if I select the replicated folder through browsing, it will fail.  In fact, if I click on the Browse button, back out and enter the path manually, it will also fail.  Furthermore, it only happens between servers in different AD sites.  It was working fine few months back when I set it up.

All these have lead me to suspect that there is a bug with the Windows Server 2008 R2 version of DFS Management Console.

On the bright side, nothing major has broken and I will use the workaround until some hotfixes appear to fix this.

UPDATE: It seems like the 64 bit version DFS Management Console (c:\Windows\System32\dfsmgmt.msc) and Cisco WAAS does not work well together. On the same Wndows Server 2008 R2 server, using the 32 bit version DFS Management Console (C:\Windows\SysWOW64\dfsmgmt.msc), it does not have this problem.

1 comment:

Unknown said...

Great post. I have experienced exactly the same problem.