---
title: LLVM 内存分配失败导致 PL 调用 core-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于LLVM 内存分配失败导致 PL 调用 core相关的常见问题和使用技巧，帮助您快速解决LLVM 内存分配失败导致 PL 调用 core的难题。
---
切换语言

- 简体中文
- English

划线反馈

# LLVM 内存分配失败导致 PL 调用 core

更新时间：2026-07-31 09:11

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

## 问题现象

OBServer 节点内存泄漏，导致 core。

通过对日志的分析，导致 core 的 trace 日志中包含如下信息：

```shell
jit block mprotect failed(block={addr:0x7f11f9ba4000, alloc_end:0x7f11f9ba43ec, size:4096}, errno=12, tmp_ret=-1, ret=-4016, (uintptr_t)block.addr_& ~(page_size - 1)=139715180904448, page_size * ((block.size_ + page_size - 1) / page_size)=4096, p_flags=1)

```

## 关键诊断信息

### 事后诊断

关键日志信息如下：

```shell
# 导致 core 的 trace 日志中包含
jit block mprotect failed(block={addr:0x7f11f9ba4000, alloc_end:0x7f11f9ba43ec, size:4096}, errno=12, tmp_ret=-1, ret=-4016, (uintptr_t)block.addr_& ~(page_size - 1)=139715180904448, page_size * ((block.size_ + page_size - 1) / page_size)=4096, p_flags=1)

```

## 问题原因

OBServer 节点所在服务器内存不足（非分配给 OBServer 节点的内存），LLVM 编译 PL 时无法分配足够内存，因此 PL 在调用时函数指针出现问题，导致 core。

## 问题的风险及影响

导致 OBServer crash。

## 影响租户

影响 OceanBase 数据库中的 Oracle 租户，对于 SYS 租户和 MySQL 租户无影响。

## 影响的版本

OceanBase 数据库 V2.2.77 GA（oceanbase-2.2.77-20210508211731）及之后版本、V3.1.2 GA（oceanbase-3.1.2-20210618150922）及之后版本、V3.2.3 GA（oceanbase-3.2.3.0-20220418212020）及之后版本、V3.2.4 GA（oceanbase-3.2.4.0-100000072022102819）及之后版本、V4.1.0 GA（oceanbase-4.1.0.0-100001122023040322）及之后版本。

## 解决方法及规避方式

- 升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库 V2.2.77 BP17（oceanbase-2.2.77-117000112023051914）及之后版本、V3.2.3 BP7 Hotfix2（oceanbase-3.2.3.3-107020062023022810）版本、V3.2.3 BP7 Hotfix3（oceanbase-3.2.3.3-107030052023031712）版本、V3.2.3 BP7 Hotfix4（oceanbase-3.2.3.3-107040032023032910）版本、V3.2.3 BP7 Hotfix5（oceanbase-3.2.3.3-107050022023040817）版本、V3.2.3 BP7 Hotfix6（oceanbase-3.2.3.3-107060012023041113）版本、V3.2.3 BP8（oceanbase-3.2.3.3-108000062023041511）及之后版本、V3.2.4 BP3（oceanbase-3.2.4.3-103000032023041816）及之后版本、V4.1.0 BP2（oceanbase-4.1.0.1-102000042023061309）及之后版本。
 - 增加 OBServer 节点所在服务器的内存，保证其有足够的内存供 PL 编译使用。

Previous

[req_id record 使用了被释放的内容导致 core](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000036892)

Next

[列间编码数据溢出导致访问编码数据时 OBServer crash](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000100775) ![有帮助](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) 咨询热线
