# [Known Issues] TiDB Server 内存不释放导致 OOM，大量内存消耗在 bytes.makeSlice

## Key Words

TiDB, OOM, bytes.makeSlice

## Description

TiDB Server 内存不释放导致 OOM，大量内存消耗在 bytes.makeSlice

## Root Cause

已知问题，v4.0.9 之前的版本中，Coprocessor 的 streaming 获取数据的方式存在问题，导致 go-routine 泄漏。

## Diagnostic Steps

采集火焰图方法 `curl -G http://{TiDB_IP}:10080/debug/zip?seconds=30" > profile.zip`, IP 地址为 TiDB-Server 服务器的 IP，端口为 tidb_status_port 的端口。

1. 查看 profile 文件，大量内存消耗在 bytes.makeSlice。

2. 查看 goroutine 文件，存在类似如下日志

```golang
goroutine 8216976 \[select, 197 minutes]:
google.golang.org/grpc.newClientStream.func5(0xc0007a1880, 0xc07e109320, 0x38ac040, 0xc06cc00420)
/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/pkg/mod/google.golang.org/grpc@v1.26.0/stream.go:319 +0xd7
created by google.golang.org/grpc.newClientStream
/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/pkg/mod/google.golang.org/grpc@v1.26.0/stream.go:318 +0x9a5
```

## Resolution

N/A

## Workaround

修改 enable-streaming 参数为 false (此参数在 v4.0.9 废弃) 

具体操作参考 [TiUP 修改配置参数](https://docs.pingcap.com/zh/tidb/v4.0/maintain-tidb-using-tiup#修改配置参数)

## Affected Versions

< v4.0.9