Support Tip: Expanding a server in the Microsoft DPM console causes the UI to crash

~ Chris Butcher | Senior Support Escalation Engineer

FIXWhen expanding a server using the (+) symbol to create, add or remove protection in System Center 2012 Data Protection Manager, the DPM console UI may crash. Typically when this occurs you will notice that it only happens for specific servers. The stack shows entries similar to the following:

<FatalServiceError><__System><ID>19</ID><Seq>0</Seq><TimeCreated>6/11/2015 7:34:23 PM</TimeCreated><Source>DpmThreadPool.cs</Source><Line>163</Line><HasError>True</HasError></__System><ExceptionType>NullReferenceException</ExceptionType><ExceptionMessage>Object reference not set to an instance of an object.</ExceptionMessage><ExceptionDetails>System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.FileSystem.FsDataSource.ToString(String format, IFormatProvider formatProvider)
   at Microsoft.Internal.EnterpriseStorage.Dls.UI.Dpw.ProtectionTreeNodeFactory.AddTreeNode(SelectionPage selectionPage, TreeNode parent, ProtectionGroup group, ProtectableObject protectableObject, Datasource datasource, Boolean includeMountPoints)
   at Microsoft.Internal.EnterpriseStorage.Dls.UI.Dpw.SelectionPage.AddFileSystemDataSources(TreeNode parentNode, IList`1 fileSystemObject, Dictionary`2 sourceList)
   at Microsoft.Internal.EnterpriseStorage.Dls.UI.Dpw.SelectionPage.GenerateApplicationTypes(TreeNode parentNode, ProductionServer productionServer, ICollection`1 poList)
   at Microsoft.Internal.EnterpriseStorage.Dls.UI.Dpw.SelectionPage.ps_DatasourceDetectionEvent(Object sender, ProtectableObjectDetectedEventArgs e)
   at Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.ProductionServer.IssueDatasourceDetectionComplete(Object param)
   at Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.Utils.ThreadMarshaller.Raise(Object state)</ExceptionDetails></FatalServiceError>

This can occur if there is bad XML in the tbl_IM_Datasource table for a data source using Mount Points.

As a temporary workaround, clicking on the "Refresh" button will allow the server to expand without crashing the console.

To fix the issue, follow these steps:

1. IMPORTANT:” Backup DPMDB using one of the methods described in the following TechNet article:

Backup methods for the DPM database

2. Launch SQL Server Management Studio and connect to the DPM instance.

3. Open a New Query window.

4. Be sure the DPMDB name is in the drop-down, thus indicating that it is the database you will be using.

5. Paste the following SQL code into the query window.  Change 'FQDN_Server' to the FQDN of the server that causes the UI to crash.  This is line 4 in the actual code.

================BEGIN SCRIPT====================

/*
Issue related to DPM UI crash when expanding a server while creating on modifying a protection group.
This issue seems to be related to Mount Point datasources.

Author: Wilson Souza
Created: 07/27/15
Version: 1.0

Instruction: To fix UI crash for a server, replace FQDN_Server with the Full server name where the crash was found.
*/

declare   @DSID GUID,
          @Logical nvarchar(max),
          @servername nvarchar(400)

set @servername = 'FQDN_Server'    –replace with the affected server FQDN here.

declare IM_Datasource_Update Cursor
for
(
  — This query will return all datasources which are root mount points
  select DataSourceId, LogicalPath
  from tbl_IM_ProtectedObject
  where DataSourceId in
  (
     select DataSourceId
     from tbl_IM_DataSource
     where serverid in
     (
        select serverid
        from tbl_AM_Server
        where servername like @servername
     )
     and AppId = '00000000-0000-0000-0000-000000000000'
  )
  and LogicalPath like '%mountpoint%'
  and ProtectedObjectId = DataSourceId
)

Open IM_Datasource_Update

Fetch next from IM_Datasource_Update
into @dsid, @Logical

— Creating loop to go thru every datasource that matched the search criteria
while @@FETCH_STATUS = 0
Begin

   — Update ApplicationPath column on table IM_Datasource with LogicalPath column from im_ProtectedObject table
   update tbl_IM_DataSource
   set ApplicationPath = @Logical
   where DataSourceId = @DSID

   — Updating column is Active to 0. This was the real change that stopped UI crashes.
   update tbl_IM_MountPoint
   set IsActive = 0
   where @DSID = DataSourceId

   Fetch next from IM_Datasource_Update
   into @dsid, @Logical
end

Close IM_Datasource_Update
Deallocate IM_Datasource_Update

================END SCRIPT====================

5. Close and reopen the DPM Console, then see if the issue still occurs when expanding the server without clicking on Refresh button.

6. If there DPM Console UI no longer crashes then create a manual recovery point for any data sources that belongs to that server or cluster.

Special thanks to my colleague Wilson Souza for creating this solution.

Chris Butcher | Senior Support Escalation Engineer | Microsoft GBS Management and Security Division

Get the latest System Center news on Facebook and Twitter:

clip_image001 clip_image002

System Center All Up: http://blogs.technet.com/b/systemcenter/

Configuration Manager Support Team blog: http://blogs.technet.com/configurationmgr/ 
Data Protection Manager Team blog: http://blogs.technet.com/dpm/ 
Orchestrator Support Team blog: http://blogs.technet.com/b/orchestrator/ 
Operations Manager Team blog: http://blogs.technet.com/momteam/ 
Service Manager Team blog: http://blogs.technet.com/b/servicemanager 
Virtual Machine Manager Team blog: http://blogs.technet.com/scvmm

Microsoft Intune: http://blogs.technet.com/b/microsoftintune/
WSUS Support Team blog: http://blogs.technet.com/sus/
The RMS blog: http://blogs.technet.com/b/rms/
App-V Team blog: http://blogs.technet.com/appv/
MED-V Team blog: http://blogs.technet.com/medv/
Server App-V Team blog: http://blogs.technet.com/b/serverappv
The Surface Team blog: http://blogs.technet.com/b/surface/
The Application Proxy blog: http://blogs.technet.com/b/applicationproxyblog/

The Forefront Endpoint Protection blog : http://blogs.technet.com/b/clientsecurity/
The Forefront Identity Manager blog : http://blogs.msdn.com/b/ms-identity-support/
The Forefront TMG blog: http://blogs.technet.com/b/isablog/
The Forefront UAG blog: http://blogs.technet.com/b/edgeaccessblog/

DPM 2012 R2