标签:terminated Fabric service CancellationToken Service runtime RunAsync
问题描述
Service Fabric 在升级 Application 过程中,发布了新的代码后,启动应用中遇见了如下错误:
Error message:
System.Hosting' reported Error for property 'CodePackageActivation:Code:EntryPoint:1873280033071208'.
There was an error during CodePackage activation.
The process/container terminated with exit code:2148734499.
Please look at your application logs/dump or debug your code package for more details.
For information about common termination errors, please visit https://aka.ms/service-fabric-termination-errors
问题解答
参考错误消息中的文档
英文版:https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-diagnostics-code-package-errors
中文版:https://docs.microsoft.com/zh-cn/azure/service-fabric/service-fabric-diagnostics-code-package-errors#when-does-a-process-or-container-terminate-unexpectedly
根据错误消息中的描述,这个问题的原因就是应用程序异常终止,所以 SF已经成功的运行了Application,但是Application出现了一个无法处理的异常(RunSsync routine),所以就需要深入查看应用层面的错误消息。
Stateless Service.RunAsync : https://docs.microsoft.com/en-us/dotnet/api/microsoft.servicefabric.services.runtime.statelessservice.runasync?view=azure-dotnet
Remarks
Please ensure you follow these guidelines when overriding RunAsync(CancellationToken):
- Make sure
cancellationToken
passed to RunAsync(CancellationToken) is honored and once it has been signaled, RunAsync(CancellationToken) exits gracefully as soon as possible. Please note that if RunAsync(CancellationToken) has finished its intended work, it does not need to wait forcancellationToken
to be signaled and can return gracefully. - Service Fabric runtime does not handle all exception(s) escaping from RunAsync(CancellationToken). If an unhandled exception escapes from RunAsync(CancellationToken), then Service Fabric runtime takes following action(s):
- If a FabricException (or one of its derived exception) escapes from RunAsync(CancellationToken), Service Fabric runtime will drop this service instance and a new instance will be created. Furthermore, a health warning will appear in Service Fabric Explorer containing details about unhandled exception.
- If an OperationCanceledException escapes from RunAsync(CancellationToken) and Service Fabric runtime has requested cancellation by signaling
cancellationToken
passed to RunAsync(CancellationToken), Service Fabric runtime handles this exception and considers it as graceful completion of RunAsync(CancellationToken). - If an OperationCanceledException escapes from RunAsync(CancellationToken) and Service Fabric runtime has NOT requested cancellation by signaling
cancellationToken
passed to RunAsync(CancellationToken), the process that is hosting this service instance is brought down. This will impact all other service instances that are hosted by the same process. The details about unhandled exceptions can be viewed in Windows Event Viewer. - If an exception of any other type escapes from RunAsync(CancellationToken) then the process that is hosting this service instance is brought down. This will impact all other service instances that are hosted by the same process. The details about unhandled exceptions can be viewed in Windows Event Viewer.
Failing to conform to these guidelines can cause fail-over, reconfiguration or upgrade of your service to get stuck and can impact availability of your service.
标签:terminated,Fabric,service,CancellationToken,Service,runtime,RunAsync 来源: https://www.cnblogs.com/lulight/p/16096748.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。