AskaEth
92b0f89492
fix(trace): URLCause 用层数上限终止,去掉不可比较的 error 比较
手写终止条件只认「长度 1 的自引用」,于是:
- 两节点环(a.Err=b / b.Err=a)⇒ 死循环,打挂当前请求的 goroutine;
- uerr.Err == err 在两侧动态类型相同且不可比较时 ⇒ panic
(comparing uncomparable type),同样打挂当前请求。
改为唯一终止条件 maxURLCauseDepth=8:超限返回只含 Op 的替身,不返回当前层
(当前层是 *url.Error,Error() 里就是整条地址,不能为防死循环把地址漏回去)。
正常单层/双层路径逐字不变。用例:两节点环 1s 内返回、不可比较类型不 panic、
自引用仍退化成替身、超限路径无 URL 片段、上限内(8 层)仍剥到内层原因。
2026-10-26 19:01:15 +08:00
..
2026-10-04 14:14:05 +08:00
2026-10-06 21:16:23 +08:00
2026-10-06 14:12:27 +08:00
2026-10-26 13:44:32 +08:00
2026-10-06 09:03:53 +08:00
2026-10-04 19:15:12 +08:00
2026-10-06 21:16:21 +08:00
2026-09-06 05:07:13 +08:00
2026-10-06 14:12:27 +08:00
2026-09-09 00:08:29 +08:00
2026-10-26 13:20:45 +08:00
2026-10-26 13:36:15 +08:00
2026-10-26 18:45:38 +08:00
2026-10-26 18:48:01 +08:00
2026-10-26 13:17:42 +08:00
2026-10-03 16:08:51 +08:00
2026-10-03 21:33:40 +08:00
2026-10-03 16:08:52 +08:00
2026-10-24 20:21:22 +08:00
2026-10-26 19:01:15 +08:00
2026-10-05 11:36:18 +08:00
2026-10-24 19:33:33 +08:00
2026-10-26 13:40:00 +08:00