# [KB] DM 同步报错 code=11105 truncate GTID sets xxx to xxx not valid

## Key Words

DM，code=11105，truncate GTID sets

## Description

MySQL 通过 DM 同步 到 TiDB 遇到报错：

```golang
[code=11105:class=functional:scope=internal:level=high] truncate GTID sets 2356bec6-b3cd-11e7-ab2f-b49691077324:1-8961125107:8961184737
,47d3dbca-b3cd-11e7-9cc1-b49691076cdc:1-148,7877223c-7282-11e7-99d6-005056b04e1b:335134853-342863837 to 7877223c-7282-11e7-99d6-005056b04e1b:335134853-342863837,2356bec6-b
3cd-11e7-ab2f-b49691077324:1-8961127637,47d3dbca-b3cd-11e7-9cc1-b49691076cdc:1-148 not valid\ngithub.com/pingcap/dm/pkg/terror.(*Error).Generate\n\t/home/jenkins/agent/wor
kspace/_dm_multi_branch_v1.0.4-hotfix-2/go/src/github.com/pingcap/dm/pkg/terror/terror.go:232\ngithub.com/pingcap/dm/pkg/gtid.(*mySQLGTIDSet).Truncate\n\t/home/jenkins/age
nt/workspace/_dm_multi_branch_v1.0.4-hotfix-2/go/src/github.com/pingcap/dm/pkg/gtid/gtid.go:187\ngithub.com/pingcap/dm/relay.(*Relay).tryRecoverLatestFile\n\t/home/jenkins
/agent/workspace/_dm_multi_branch_v1.0.4-hotfix-2/go/src/github.com/pingcap/dm/relay/relay.go:351\ngithub.com/pingcap/dm/relay.(*Relay).process\n\t/home/jenkins/agent/work
space/_dm_multi_branch_v1.0.4-hotfix-2/go/src/github.com/pingcap/dm/relay/relay.go:250\ngithub.com/pingcap/dm/relay.(*Relay).Process\n\t/home/jenkins/agent/workspace/_dm_m
ulti_branch_v1.0.4-hotfix-2/go/src/github.com/pingcap/dm/relay/relay.go:191\ngithub.com/pingcap/dm/dm/worker.(*realRelayHolder).run\n\t/home/jenkins/agent/workspace/_dm_mu
lti_branch_v1.0.4-hotfix-2/go/src/github.com/pingcap/dm/dm/worker/relay.go:167\ngithub.com/pingcap/dm/dm/worker.(*realRelayHolder).Start.func1\n\t/home/jenkins/agent/works
pace/_dm_multi_branch_v1.0.4-hotfix-2/go/src/github.com/pingcap/dm/dm/worker/relay.go:143\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1357"
```

## Root Cause

BUG

## Diagnostic Steps

1. 查看报错关键字 truncate GTID sets xxx to xxx not valid
2. 查看错误栈匹配

```golang
    gtid.(\*mySQLGTIDSet).Truncate--relay.(\*Relay).tryRecoverLatestFile--relay.(\*Relay).process--relay.(\*Relay).Process--worker.(\*realRelayHolder).run--worker.(\*realRelayHolder).Start.func1
```

```golang
/home/jenkins/agent/workspace/_dm_multi_branch_v1.0.4-hotfix-2/go/src/github.com/pingcap/dm/pkg/terror/terror.go:232\ngithub.com/pingcap/dm/pkg/gtid.(*mySQLGTIDSet).Truncate\n\t
/home/jenkins/agent/workspace/_dm_multi_branch_v1.0.4-hotfix-2/go/src/github.com/pingcap/dm/pkg/gtid/gtid.go:187\ngithub.com/pingcap/dm/relay.(*Relay).tryRecoverLatestFile\n\t
/home/jenkins/agent/workspace/_dm_multi_branch_v1.0.4-hotfix-2/go/src/github.com/pingcap/dm/relay/relay.go:351\ngithub.com/pingcap/dm/relay.(*Relay).process\n\t
/home/jenkins/agent/workspace/_dm_multi_branch_v1.0.4-hotfix-2/go/src/github.com/pingcap/dm/relay/relay.go:250\ngithub.com/pingcap/dm/relay.(*Relay).Process\n\t
/home/jenkins/agent/workspace/_dm_multi_branch_v1.0.4-hotfix-2/go/src/github.com/pingcap/dm/relay/relay.go:191\ngithub.com/pingcap/dm/dm/worker.(*realRelayHolder).run\n\t
/home/jenkins/agent/workspace/_dm_multi_branch_v1.0.4-hotfix-2/go/src/github.com/pingcap/dm/dm/worker/relay.go:167\ngithub.com/pingcap/dm/dm/worker.(*realRelayHolder).Start.func1\n\t
/home/jenkins/agent/workspace/_dm_multi_branch_v1.0.4-hotfix-2/go/src/github.com/pingcap/dm/dm/worker/relay.go:143\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1357"
```

## Resolution

在 DM 2.0.2 中修复，PR [https://github.com/pingcap/dm/pull/1430](https://github.com/pingcap/dm/pull/1430) ，建议升级到高版本 DM

## Workaround

1. 停止 DM-worker

2. 修改 relay.meta 里的 GTID 部分。
   根据报错对比 sets 和 to 中的不同，将当前 relay.meta 中记录的值修改为 to 中的值
    
    以报错为例，需要调整 `2356bec6-b3cd-11e7-ab2f-b49691077324` 为 `1-8961127637`

    ```yaml
    truncate GTID sets 
    47d3dbca-b3cd-11e7-9cc1-b49691076cdc:1-148,
    7877223c-7282-11e7-99d6-005056b04e1b:335134853-342863837,
    2356bec6-b3cd-11e7-ab2f-b49691077324:1-8961125107:8961184737 
    to 
    2356bec6-b3cd-11e7-ab2f-b49691077324:1-8961127637,
    47d3dbca-b3cd-11e7-9cc1-b49691076cdc:1-148,
    7877223c-7282-11e7-99d6-005056b04e1b:335134853-342863837 
    not valid
    ```

3. 启动 DM-worker

## Affected Versions

DM 版本低于 2.0.2