アクセス違反が原因でSMCoreServiceHost.exeがクラッシュする
環境
問題
SMCoreServiceHost.exe
アクセス違反が原因で次のスタックトレースがクラッシュします。
例:
Log Name: Application
Source: .NET Runtime
Date: 5/20/2020 1:33:31 AM
Event ID: 1026
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: HOSTNAME
Description:
Application: SMCoreServiceHost.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.AccessViolationException
Stack:
at System.Runtime.InteropServices.Marshal.PtrToStructureHelper(IntPtr, System.Object, Boolean)
at System.Runtime.InteropServices.Marshal.PtrToStructure(IntPtr, System.Object)
at SnapDrive.HostUtilities.Scsi.ScsiService.sendSCSI(System.String, Int32 ByRef, SnapDrive.HostUtilities.Scsi.ScsiPassThroughWithBuffers ByRef, System.TimeSpan ByRef)
at SnapDrive.HostUtilities.Scsi.ScsiService.IsNetAppLun(System.String)
at SnapDrive.HostUtilities.Vds.VdsDisk.get_IsNetAppDisk()
at SnapDrive.HostUtilities.DiskDiscovery.DiskService.GetDiskResource(SnapDrive.HostUtilities.Vds.VdsDisk)
at SnapDrive.HostUtilities.DiskDiscovery.DiskService.GetDiskResources(System.Collections.Generic.IEnumerable`1<SnapDrive.HostUtilities.Vds.VdsDisk>)
at SnapDrive.HostUtilities.DiskDiscovery.DiskService.GetAllDiskInfo()
at SnapDrive.Nsf.Core.Discovery.VdsToStorageResolver.GetResourceObjectGraphs(System.String, System.Collections.Generic.IEnumerable`1<SMCoreContracts.SDStorageSystemId>, SMCoreContracts.StorageSystemOSType ByRef, System.Collections.Generic.Dictionary`2<SMCoreContracts.SDStorageResource,SMCoreContracts.SDStorageObjectGraph> ByRef)
at SnapDrive.Nsf.Core.Discovery.StorageResolver.GetResourceObjectGraphs(System.String, System.Collections.Generic.IEnumerable`1<SMCoreContracts.SDStorageSystemId>, SMCoreContracts.StorageSystemOSType ByRef, System.Collections.Generic.Dictionary`2<SMCoreContracts.SDStorageResource,SMCoreContracts.SDStorageObjectGraph> ByRef, Boolean)
at SnapDrive.Nsf.Core.Discovery.HostFileSystemToStorageResolver.GetResources(System.String, System.Collections.Generic.IEnumerable`1<SMCoreContracts.SDStorageSystemId>, Boolean, Boolean, Boolean)
at SnapDrive.Nsf.Core.SANReplicationStrategy.PrepareForReplication(SMCoreContracts.SDSnapmirrorUpdateRequest)
at SnapDrive.Nsf.Core.ReplicationManager.SDSnapmirrorUpdate(SMCoreContracts.SDSnapmirrorUpdateRequest)
at SnapDrive.Nsf.ServiceProviders.SDSnapRemoteServiceProvider.SDSnapmirrorUpdate(SMCoreContracts.SDSnapmirrorUpdateRequest)
at SnapMgrCoreService.Workflows.Activities.ReplicationHelper.UpdateSnapmirror(SMCoreContracts.SDSnapmirrorUpdateRequest)
at SnapMgrCoreService.Workflows.Activities.StorageReplicationHelper.SalUpdateSnapMirrorWithRetry(System.Collections.Generic.List`1<SnapMgrCoreService.Protection.SnapMirrorUpdateStatus>, SMCoreContracts.RelationShipType, Int32, Int32, SnapMgrContracts.Workflow.SmWorkflowContext)
at SnapMgrCoreService.Workflows.Activities.Common.EnhancedReplicationActivity.UpdateSnapMirror(System.Collections.Generic.List`1<System.Linq.IGrouping`2<SnapMgrCoreService.Workflows.Activities.Common.SnapshotInfo,SnapMgrCoreService.Workflows.Activities.Common.SnapshotToSmObjectMapping>>, System.Collections.Generic.List`1<SMCoreContracts.SnapMirrorRelationshipStatus>, Int32, SnapMgrCoreService.Workflows.Activities.StorageReplicationHelper, SMCoreContracts.RelationShipType, SnapMgrContracts.Workflow.SmWorkflowContext)
at SnapMgrCoreService.Workflows.Activities.Common.EnhancedReplicationActivity.Execute(SnapMgrContracts.Workflow.SmWorkflowContext, SMCoreContracts.SmRequest)
at SnapMgrCoreService.SmJobActivity.Execute(SnapMgrContracts.Workflow.SmWorkflowContext, SMCoreContracts.SmRequest)
at SnapMgrCoreService.Workflows.SmJobWorkflow.Execute(SMCoreContracts.SmRequest)
at SnapMgrCoreService.BackupHandler.Execute(SMCoreContracts.SmRequest)
at SnapMgrCoreService.SmJobManagerConsumer.Execute(SMCoreContracts.SmRequest)
at JobManager.SmJobManager.ExecuteAndUpdateQueue(SMCoreContracts.SmRequest)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ThreadHelper.ThreadStart()