---
title: core 之后 easy 频繁刷的情况-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 core 之后 easy 频繁刷的情况相关的常见问题和使用技巧，帮助您快速解决 core 之后 easy 频繁刷的情况的难题。
---
切换语言

- 简体中文
- English

划线反馈

# core 之后 easy 频繁刷的情况

更新时间：2024-04-11 06:06

适用版本： V1.4.x、V2.1.x、V2.2.x、V3.1.x、V3.2.x、V4.0.x、V4.1.x、V4.2.x 内容类型：TechNote  

## 问题描述

core 了之后，OBServer 会立即关闭所有的 `socket fd`，但是这个时候 easy 线程还在继续执行，所以会报 `Bad file descriptor` 的错误信息，大概日志如下。

```shell
ERROR easy_connection_update_ack_bytes_and_time (easy_connection.c:2155) [121276][0][Y0-0000
000000000000-0-0] [lt=11] Failed to do TIOCOUTQ ioctl on connection(0.0.0.0_xxx.xxx.xxx.xxx:xxx_xxx_0xfffbd46102c0 tp=0 t
=1650605978022081-1650605978022284 s=0 r=0 io=268/235 sq=235), errno(9), strerror(Bad file descriptor). BACKTRACE:0xe85f9
87 0xe6f4efb 0xe6f4efb 0xe6dedd7 0xe6e0887 0xea08ddb 0xa57c5d7 0xa57c5d7

```

## 为什么要立即关闭所有的 fd？

一台 OBServer 在 core 的过程中，RPC 不能处理，也不能回包，其他发 RPC 的机器就感知不到，这些 RPC 就可能长时间 hang 住，占住工作线程，现象上会出现租户队列积压，集群长时间 QPS 跌零等。

## 遗留问题：二次 core

OBServer 发生第一次 core 并关闭了所有 fd 后，可能导致 easy 线程再次 core。这个问题的根因应该是 easy 代码中的 bug，目前还不清楚，也没有找到规避的办法。这种情况 coredump 记录的第一个线程是 easy 线程，并不是第一次触发 core 的线程，所以需要遍历所有线程栈，根据 `ob_signal_handler` 或 `coredump_cb` 这些关键字找到 core 的第一现场。

## 适用版本

OceanBase 数据库所有版本。

Previous

[系统 db 下创建与内部表同名的表可能会导致 core](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000799320)

Next

[ObParserResultPrintWrapper 未检查导致 core](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000036894) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
