【问题标题】:Azure Service Fabric - deployment fails with 1 partitions remainingAzure Service Fabric - 部署失败,剩余 1 个分区
【发布时间】:2016-02-12 22:44:16
【问题描述】:

我使用 Service Fabric 已经有一段时间了,成功构建、部署和测试了多个服务,但是我刚刚完成构建的服务在部署时失败(请参阅下面的错误)。在诊断中,我尝试使用 VS 模板创建和部署一个全新的服务(没有代码更改),但也不会部署 - 同样的错误。但是,计算器 SDK 示例部署得很好。

我收到以下错误,它无法构建分区之一:

Service Status:
fabric:/DataFabricServiceApplication/DataFabricService is not ready, 1 partitions remaining.

Service Status:
fabric:/DataFabricServiceApplication/DataFabricService is not ready, 1 partitions remaining.

Service Status:
fabric:/DataFabricServiceApplication/DataFabricService is not ready, 1 partitions remaining.

Service Status:
fabric:/DataFabricServiceApplication/DataFabricService is not ready, 1 partitions remaining.

Service Status:,fabric:/DataFabricServiceApplication/DataFabricService is not ready, 1 partitions remaining.

Something is taking too long, the application is still not ready.
Finished executing script 'Get-FabricApplicationStatus.ps1'.
Time elapsed: 00:01:48.0681346
The thread 0x37fc has exited with code 0 (0x0).
The thread 0x4fe4 has exited with code 0 (0x0).

获取服务的健康状况如下:

    PS C:\WINDOWS\system32> Get-ServiceFabricServiceHealth -ServiceName fabric:/DataFabricServiceApplication/DataFabricService


    ServiceName           : fabric:/DataFabricServiceApplication/DataFabricService
    AggregatedHealthState : Error
    UnhealthyEvaluations  :
                            Unhealthy partitions: 100% (1/1), MaxPercentUnhealthyPartitionsPerService=0%.

                            Unhealthy partition: PartitionId='3eebd943-097d-4568-ad7e-d37c621a888b', AggregatedHealthState='Error'.

                                Error event: SourceId='System.FM', Property='State'.

    PartitionHealthStates :
                            PartitionId           : 3eebd943-097d-4568-ad7e-d37c621a888b
                            AggregatedHealthState : Error

    HealthEvents          :
                            SourceId              : System.FM
                            Property              : State
                            HealthState           : Ok
                            SequenceNumber        : 10
                            SentAt                : 11/11/2015 07:16:02
                            ReceivedAt            : 11/11/2015 07:16:03
                            TTL                   : Infinite
                            Description           : Service has been created.
                            RemoveWhenExpired     : False
                            IsExpired             : False
                            Transitions           : Warning->Ok = 11/11/2015 07:16:03, LastError = 01/01/0001 00:00:00

有谁知道为什么这不会部署/我如何才能找到它的底部?我见过其他人有同样的错误,但没有找到任何解决方案。

【问题讨论】:

    标签: azure-service-fabric


    【解决方案1】:

    对服务运行状况的不正常评估向您显示存在问题的分区。您可以继续深入了解该分区的运行状况 (Get-ServiceFabricPartitionHealth 3eebd943-097d-4568-ad7e-d37c621a888b)。我的猜测是你会看到来自System.FMError 事件说分区低于最小副本集大小。

    然后您可以深入了解副本的健康状况 (Get-ServiceFabricReplica 3eebd943-097d-4568-ad7e-d37c621a888b | Get-ServiceFabricReplicaHealth)。 我见过很多这种情况,因为副本无法打开(因为配置问题或服务副本代码中的错误)。如果是这种情况,您将在副本上看到一个事件,说明它有什么问题(例如,打开需要很长时间或打开失败并出现错误代码等),或者副本将继续回收。

    【讨论】:

    • 可能出现的配置问题有哪些?在我的情况下,这很可能是一个配置问题,因为它在本地工作,但在部署到远程服务器时出现错误。
    • 有人对上述问题有答案
    • 可能有很多问题。查看事件日志以查看是否有任何条目指出正在发生的事情。一些示例:端口冲突或端口未打开,未找到证书,在极端情况下抛出的服务代码中未处理的异常(未在本地集群中命中),包中缺少文件(忘记“始终复制”是 VS 项目),out VM 上的内存或其他问题。
    【解决方案2】:

    扩展 @MarkD 所说的我遇到了同样的问题,对我来说一个快速的解决方案是将代码推送到我的存储库,然后删除/重新克隆它。下载克隆并重建后,我的部署没有问题。

    【讨论】:

    • 对于它的价值,这也是我所做的,然后它又运行了。
    【解决方案3】:

    不是答案,但我也许可以为您节省一些时间。我在一台机器(我的笔记本电脑)上遇到此错误,而另一台在 Azure VM 中运行完全相同的代码则完全没问题。

    简短的回答 - 我现在从我构建的具有 WS2012R2/VS2015 和 SF SDK 的模板在 VM 上运行我的所有调试。每次遇到这个错误时,我都会将源代码提交到团队服务器,删除虚拟机,重新创建它,取回源代码并继续运行。大约需要 10 分钟,并且在这些烦人的问题上节省了大量时间(没有投诉 - 这在预发布/预览阶段并不罕见)。

    我怀疑在调试/重建/调试/重建周期中,SF 中的某些内容已损坏。我已经尝试过重置、删除/重新安装以删除 SDK 和 VS,但是一旦启动,就没有任何东西可以清除错误。也许存在某种在重新安装时不会重置的注册表损坏?我记得看到其中一条痕迹抱怨性能计数器丢失,而另一位用户发现了同样的东西,但我无法进一步追踪它。一旦再次发生,我会尝试多看一点。

    【讨论】:

      【解决方案4】:

      在 CreateServiceReplicaListeners 方法中捕获/记录错误..

      1. 可能是您更新了本地(开发)服务结构集群的发布配置文件 确保您为本地(开发)集群使用正确的配置文件 Local.1Node和Local.5Node中的ApplicationParameters

      2. ServiceManifest 中不存在端点

      3. 监听器设置错误.. 等

      【讨论】:

        【解决方案5】:

        在我的情况下,服务的 url 是错误的,我输入了 面料:/XXX.User.Application/XXX.Services.UserService

        作为

        fabric:/XXX.User.Application/XXX.Services.User

        【讨论】:

          猜你喜欢
          • 2015-07-27
          • 2019-03-15
          • 1970-01-01
          • 2017-08-06
          • 1970-01-01
          • 2019-12-04
          • 2019-05-30
          • 1970-01-01
          • 2020-03-11
          相关资源
          最近更新 更多