天天看點

【Azure Fabric Service】Service Fabric 遇見錯誤資訊記錄 - The process/container terminated with exit code:2148734499

問題描述

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

【Azure Fabric Service】Service Fabric 遇見錯誤資訊記錄 - The process/container terminated with exit code:2148734499
【Azure Fabric Service】Service Fabric 遇見錯誤資訊記錄 - The process/container terminated with exit code:2148734499

根據錯誤消息中的描述,這個問題的原因就是應用程式異常終止,是以 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 for 

    cancellationToken

     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.

當在複雜的環境中面臨問題,格物之道需:濁而靜之徐清,安以動之徐生。 雲中,恰是如此!

繼續閱讀