fix(httpclient): handle missing upstream list during failover
在 failover 重试前检查最新 upstream 列表,缓存项被删除时返回既有的 503 耗尽响应,避免空指针异常变成 500,并补充真实缓存移除场景的回归测试。
Open-source contributions to Apache ShenYu
在 failover 重试前检查最新 upstream 列表,缓存项被删除时返回既有的 503 耗尽响应,避免空指针异常变成 500,并补充真实缓存移除场景的回归测试。
让 AI 请求路径重写同步更新 ShenyuContext,避免仍向旧路径转发,同时保留已有 realUrl 转换和显式 REWRITE_URI 的优先级。
串行处理 MQTT 配置更新,等效配置复用现有监听器,配置变化时安全重启,并补齐启动失败清理、幂等关闭和并发更新的测试。
让两种生产任务队列显式调用 TaskQueue 的 eager offer 策略,在工作线程繁忙且未达上限时扩容,同时保留原有入队与内存检查。
以原始字节保存和重放 MQTT retained payload,避免字符串解码破坏二进制消息,并覆盖 ByteBuf 切片、引用生命周期与空消息删除。
在内存限额变更和使用量重置时,持锁唤醒等待预算的生产者,修复扩容或缩容后 clear 仍阻塞的问题,并验证只放行符合预算的请求。
补齐 TCP selector 端口与属性更新的提交后通知和监听器替换,保留初次创建的 single-flight 机制,并处理同端口重启失败恢复与替换、删除之间的同步。
在 HTTP 同步恢复中直接复用已带 namespace 的完整缓存 key,避免重复前缀导致空指针或跨命名空间读取,并用生产格式的缓存数据补充回归测试。
移除 etcd 实例查询中未保留句柄的持久 watcher 和未使用缓存,继续直接查询最新实例,保留显式订阅及其清理行为。
统一 ZooKeeper 实例注册、查询与监听路径,补齐原生实例 URL 和 Admin 更新、全量同步链路,并验证应用隔离与 namespace 保留。
在缓存未命中响应的字节复制后释放合并的 DataBuffer,避免池化 Netty 缓冲区泄漏,并验证单段、多段及额外引用场景的释放次数与响应内容。
将规则级 AI Prompt 设置应用到新的配置对象,避免污染共享插件配置或影响后续请求,保留规则字段整体替换的既有语义。
修正 MCP 请求中固定与动态 query 参数的拼接及重复判断,保留固定参数优先和动态值编码,并验证实际请求 URI 与上下文路径。
使用原始 query 比较 fallback 目标,保留百分号编码,避免编码参数绕过同目标保护或将不同目标误判为相同,覆盖重定向与内部转发两条路径。
直接验证并保留 AI 请求转换器生成的 JSON 文本,避免数组变成 null 或嵌套值类型被改写,同时保留对象、数组及文本格式。
按 scheme、host 和有效端口识别失败 upstream,正确处理省略默认端口的地址,避免 failover 反复选择同一失败节点,并保留原有重试和请求体重放逻辑。
清理已无仓库内生产消费者的旧注册锁类型、Bean 和相关测试,保留现有 context-path 加锁、集群选主及数据库机制,并明确公开 API 的兼容性影响。
使用 Dubbo URL 模型替换 Registry 地址中的 namespace 参数,保留其余地址组件与参数,并补充普通和 upstream Reference 路径的回归测试,确保原始配置不变。
补齐 selector 级 discovery upstream 删除的插件清理链路,通过 HTTP 快照对比识别消失或改名的记录,并处理 TCP 身份映射和 Admin 批量删除校验。
让 k3s 下载失败正确进入重试,并将非空 kubeconfig 作为安装成功条件,补充离线测试覆盖下载失败、配置缺失与空文件等场景。
让 ZooKeeper Watcher 将空子节点列表也写入实例缓存,避免最后一个实例删除后仍返回旧数据,并覆盖实例数量 1 → 0 → 1 的状态变化。
通过按 selector 的 single-flight 创建机制,避免并发同步时重复启动 TCP bootstrap server,并补全失败回滚与幂等关闭处理。
修复 HTTP 全量同步收到空快照后旧 proxy selector 运行时数据未清理的问题,并安全关闭缓存的 TCP bootstrap servers。