🔴 P0 | events.rs EVENT_BUFFER 全局缓冲区无大小上限 #38

Closed
opened 2026-06-06 12:33:02 +08:00 by wangdl · 1 comment
Owner

背景

events.rs 的 EVENT_BUFFER 是 static Mutex<Vec>,永不限制大小。iOS 端 collector 恢复使用后,如果网络异常导致事件无法导出,缓冲区将持续增长直至 OOM。

修复方案

  1. 增加 MAX_BUFFER_SIZE 常量(如 1000)
  2. push_reading_event 时超过上限丢弃最旧事件
  3. 或改为环形缓冲区

位置

crates/zx_document_core/src/events.rs:8

## 背景 events.rs 的 EVENT_BUFFER 是 static Mutex<Vec<ReadingEvent>>,永不限制大小。iOS 端 collector 恢复使用后,如果网络异常导致事件无法导出,缓冲区将持续增长直至 OOM。 ## 修复方案 1. 增加 MAX_BUFFER_SIZE 常量(如 1000) 2. push_reading_event 时超过上限丢弃最旧事件 3. 或改为环形缓冲区 ## 位置 crates/zx_document_core/src/events.rs:8
wangdl added this to the M6:Code Review 质量完善(2026-06-06) milestone 2026-06-06 12:33:02 +08:00
Author
Owner

修复完成 (2026-06-06)

实现

  • 新增 MAX_BUFFER_SIZE = 1000 常量
  • push_reading_event()buf.len() >= MAX_BUFFER_SIZE 时调用 buf.remove(0) 丢弃最旧事件再 push

状态

已修复,已推送。

## 修复完成 (2026-06-06) ### 实现 - 新增 `MAX_BUFFER_SIZE = 1000` 常量 - `push_reading_event()` 中 `buf.len() >= MAX_BUFFER_SIZE` 时调用 `buf.remove(0)` 丢弃最旧事件再 push ### 状态 ✅ 已修复,已推送。
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/zhixi-document-runtime#38
No description provided.