【发布时间】:2023-04-02 20:15:01
【问题描述】:
在我们的实时系统上,我们突然开始遇到错误,Service Fabric 无法进行故障转移。该系统最后一次部署是在 5 月,从那时起一直运行良好。我们尚未在虚拟机上安装任何更新。错误信息是:
Error event: SourceId='System.RA', Property='ReplicaChangeRoleStatus'.
Replica had multiple failures during change role on _stdNT_4. API call: IStatefulServiceReplica.ChangeRole(P); Error = System.Fabric.FabricObjectClosedException (-2147017730)
The object is closed.
System.Runtime.InteropServices.COMException (-2147017730)
Exception from HRESULT: 0x80071BFE
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.ServiceFabric.Services.Remoting.V1.FabricTransport.Runtime.FabricTransportServiceRemotingListener.<>c__DisplayClass10_0.<b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.ServiceFabric.Services.Runtime.StatefulServiceReplicaAdapter.d__26.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.ServiceFabric.Services.Runtime.StatefulServiceReplicaAdapter.d__18.MoveNext()
For more information see: http://aka.ms/sfhealth
我们还看到 System.Fabric.ServiceFabricException。此操作期间发生错误。请查看跟踪日志以获取更多信息。
我在跟踪或虚拟机上的事件日志中找不到任何其他有用的错误。
唯一有趣的是,唯一受影响的服务是我们唯一一个有状态的服务。我们在上一个版本中使其成为有状态的,以便我们可以使用演员提醒。
一旦集群开始出现故障,它将永远将主节点从一个节点移动到另一个节点。我们通过重新部署到新集群解决了这个问题,但几天后问题又出现了。
我想要一些关于我们如何能够诊断问题的建议,或者是否有人看到过类似的情况。
使用 Service Fabric 版本 6.1.456、Asp.Net 核心版本 1.1.2 和 .net 框架版本 4.7.1。
【问题讨论】:
标签: azure azure-service-fabric service-fabric-stateful