Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

header_rewrite: rm-destination after set-destination URL crashes traffic_server

未关闭
#13,800 0 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

维护者通常 2 天内回复

@moonchen 已经在做这个了。

开始于 2026年10月5日。

评估

这个 Issue 还没有评估数据。

描述

Bug Crash header_rewrite Plugins

In a remap rule, rm-destination crashes traffic_server if set-destination URL ran earlier for the same request.

The two operators don't have to be in the same rule. For example, a conditional set-destination URL that routes canary traffic, plus a separate rule that strips a tracking parameter from every request:

remap.config:

map http://www.example.com/ http://127.0.0.1:8081/ @plugin=header_rewrite.so @pparam=rules.conf

rules.conf:

cond %{CLIENT-HEADER:X-Canary} ="1"
set-destination URL "http://127.0.0.1:8081/canary/?%{CLIENT-URL:QUERY}"

cond %{TRUE}
rm-destination QUERY "utm_source"

Requests without X-Canary are proxied normally. This one crashes traffic_server:

curl -x http://127.0.0.1:8080 -H 'X-Canary: 1' 'http://www.example.com/?utm_source=x&a=1'
Fatal: src/api/InkAPI.cc:1077: failed assertion `sdk_sanity_check_url_handle(obj) == TS_SUCCESS`

set-destination URL replaces the request's URL object with TSHttpHdrUrlSet(). rm-destination still uses _rri->requestUrl, which points at the old, deallocated object. #12278 fixed the same problem for set-destination by checking res.changed_url and re-reading the URL from the header; rm-destination needs the same check.

主要语言
C++
星标
2k
派生
878
平均合并
3 天 16 小时
30 天内合并 PR
95

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

apache/trafficserver 的其他 Issue

查看 apache/trafficserver 的全部 Issue

相似的 Issue

更多 C++ Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。