# [Known-Issues]Drainer 启动报错 filterTable failed not found table id

## Key Words

Drainer, not found table id

## Description

Drainer 已经运行一段时间的，通过 replication-do-table 新增需要同步的表时，报错 not found table id，详细日志如下

```golang
[2022/07/25 18:04:28.959 +08:00] [ERROR] [server.go:291] ["syncer exited abnormal"] [error="filterTable failed: not found table id: 1966292"][errorVerbose="not found table id: 1966292\ngithub.com/pingcap/tidb-binlog/drainer.filterTable\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb-binlog/drainer/syncer.go:523\ngithub.com/pingcap/tidb-binlog/drainer.(\*Syncer).run\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb-binlog/drainer/syncer.go:377\ngithub.com/pingcap/tidb-binlog/drainer.(\*Syncer).Start\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb-binlog/drainer/syncer.go:132\ngithub.com/pingcap/tidb-binlog/drainer.(\*Server).Start.func4\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb-binlog/drainer/server.go:290\ngithub.com/pingcap/tidb-binlog/drainer.(\*taskGroup).start.func1\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb-binlog/drainer/util.go:76\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1357\nfilterTable failed"]
```

## Root Cause

停止 Drainer 的 checkpoint 会保存 version 信息，正常情况下为已经加载到的表结构 version。Drainer&nbsp; 重新启动时加载所有 ddl job 直到该 version 为止。同时当 drainer 执行 ddl/dml 时，也会根据这条 dml/ddl 执行时的 schema version 加载表结构。

当 drainer 因为一些原因错误的将 version 推进到较大时间点（比如人为把 checkpoint tso 调小）。由于该 version 下对应的报错 table 已经被 drop，导致执行/过滤 dml 时 drainer 因为找不到 tableID 对应的表信息而报错退出。

## Diagnostic Steps

查看 drainer.log 日志能够匹配错误信息和错误栈

## Resolution

停止drainer 然后将 savepoint 文件中的 schema-version 改成 0 再启动drainer 问题解决

```golang
[tidb@Centos7 ~]$ cd /data/tidb/drainer-8250/data.drainer  
[tidb@Centos7 data.drainer]$ cat savepoint 
consistent = false
commitTS = 434821714167988250
schema-version = 1139748
```

> **注意***
> 
> file 类型的下游 checkpoint 进度保存在本地文件 <data-dir>/savepoint 中，mysql 类型的下游进度保存在下游数据库

## Workaround

N/A

## Affected Versions

All