# [KB]关于 PD 节点宕机导致 TiCDC 无法启动的问题

## Description

同城三中心部署。A 区、C 区分别部署两个 TiCDC 节点，模拟机房故障测试，A 区故障。

TiCDC 部署 4 个节点，其中 A、C 区各两个 TiCDC 节点，A 区故障后，整个 TiCDC 集群无法同步数据。

## Root Cause

TiCDC 启动的时候会用 pd-url 里写的第一个 pd 地址来做一些版本检查，如果第一个 pd down 了就会失败。

Github Issue: [https://github.com/pingcap/ticdc/issues/2502](https://github.com/pingcap/ticdc/issues/2502)

Github PR [https://github.com/pingcap/ticdc/pull/2503](https://github.com/pingcap/ticdc/pull/2503) 已修复

## Diagnostic Steps

可通过 C 区 TiCDC 日志判断，可以看出 TiCDC 仍旧连接的是已经 down 掉的 PD 节点。日志有报错：

```log
["[pd] failed to get cluster id"] 和 [error="[PD:grpc:ErrGRPCDial] context deadline exceeded"]
```

![know-issue-pd-crash-ticdc-cannot-start](/images/know-issue-pd-crash-ticdc-cannot-start.png)

## Resolution

升级到 v4.0.15、v5.1.2、v5.2.0 等以上版本。

## Workaround

可以通过下述步骤修改 tiup 来重启 TiCDC 解决：

使用 tiup cluster edit-config 修改 cluster 配置，将可用的 pd 地址放在第一位，示例如下： 运行 tiup cluster edit-config cdc 更改 pd_servers 中 pd 配置顺序，把可用 pd配置项前移：

使用 tiup cluster reload -R cdc 更新 cdc 重启脚本并重启 cdc 服务

## Affect Version(optional)

v4.0.0 ~ v4.0.14,v5.1.0,v5.1.1