---
title: 执行 DML 并行报错 -4377，message loop is interrupted-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于执行 DML 并行报错 -4377，message loop is interrupted相关的常见问题和使用技巧，帮助您快速解决执行 DML 并行报错 -4377，message loop is interrupted的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 执行 DML 并行报错 -4377，message loop is interrupted

更新时间：2026-05-28 02:06

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

## 问题描述

1. 执行并行 update SQL 报错。

   ```shell
   update /*+ enable_parallel_dml parallel(16)*/ ac04 a
   set aae677=7486*3,aae678=7486*3, aae679=7486*3, aae680=7486*3,
   aae013='20220914批量更新202209-202212封顶基数为22458'
   where aae001 = 2022
   and aae140 in ('110', '120', '180','210','310','410')
   and aae705>7486*3
   AND EXISTS
   (SELECT 1 FROM ac02 WHERE aac001 = a.aac001 AND aae140 = a.aae140 AND aab001 = a.aab001 AND aac031 = '1')
   AND aab001 not in (
   select aab001 from ab01 where aab001 in (
   select aab001 from aba1 where bab321='02')
   and aaa120='1');

   ```
 2. `observer.log` 报错信息。

   ```shell
   WARN  [SERVER] process (obmp_query.cpp:313) [117010][2582][xxxxx-xxxxx] [lt=6] [dc=0] fail execute sql(sql_id="", sql=update /*+ enable_parallel_dml parallel(16)*/ ac04 a
   [TRACE [TRACE]obmp_base.cpp:956 [117010][2582][xxxxx-xxxxx] [lt=11] [dc=0] [packet retry query](TRACE=begin_ts=1663159881632355 xxxx-xx-xx xx:xx:xx.xxxxx|[process_begin] u=0 in_queue_time:46256859, receive_ts:1663159835375495, enqueue_ts:1663159881629696|[start_sql] u=0 addr:{ip:"xxx.xxx.xxx.xxx.xxx", port:32043}|[query_begin] u=1 trace_id:xxxxx-xxxxx[before_processor_run] u=2 |[session] u=3 sid:3222219519, tenant_id:1024|[parse_begin] u=18 stmt:"update /*+ enable_parallel_dml parallel(16)*/ ac04 a
   WARN  [SQL.DTL] process_base (ob_dtl_channel_loop.cpp:232) [116982][2526][xxxxx-xxxxx] [lt=6] [dc=0] message loop is interrupted(code={code:-4377, info:{msg:"tid:73549,from:"xxx.xxx.xxx.xxx:xxx",TASK ABORT QC"}}, ret=-4377)

   ```

## 问题原因

OceanBase 数据库 BUG。问题存在于 OceanBase 数据库 V3.1.2 BP5（oceanbase-3.1.2-20211119151959）及以下版本，PDML 中 DML 算子和 TABLE SCAN 算子形成 PARTITION WISE，没有分配 EXCHANGE 的场景下可能会分配出错误的 PARTITION ID，导致数据写错分区，被 DML 防御拦下。

## 适用版本

OceanBase 数据库 V3.1.2 BP5（oceanbase-3.1.2-20211119151959）及以下版本。

### 解决方法

升级至问题已修复版本，目前已修复的版本包括 OceanBase 数据库企业版 V3.1.2 BP6（oceanbase-3.1.2-20211230114204）及以上版本。

### 应急方案

避免并行 DML。

上一篇

[插入数据时数据类型不一致，错误代码 ORA-00932](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000217851)

下一篇

[MySQL 模式 Update + Order by 报错 5868](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000209975) ![有帮助](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) 咨询热线
