#6203·proxysql

test(pgsql): 使用 JSON 事件日志进行有毒事务恢复的回归测试 (#6084)

作者: renecannao创建于 2026年9月17日更新于 2026年9月17日

#6084 报告了一个 ASAN 堆使用后释放的问题: 在前端包已被释放后,恢复了一个被污染的 PostgreSQL 事务,该事务记录了 `CurrentQuery`。提交 0959fa9cf 修复了这个问题,在 `PgSQL_Session::handler_poisoned_simple_query()` 中调用了 `RequestEnd()` 之前调用了 `l_free(pkt->ptr)`。#6084 中请求的回归测试从未添加。`pgsql-tx_poisoned_recovery-t` 覆盖了后端终止后的 `ROLLBACK`,但它不启用事件日志。已释放的指针在事件日志记录路径上只能读取(`PgSQL_Logger::log_request()` → `PgSQL_Event::write_query_format_2_json()`),因此当前测试不会检测到该错误的重新引入。

内容来源: sysown/proxysql