IPv6 node addresses produce an invalid request URL
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 82/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- python
- 领域
- backend, networking
调研方向
先阅读 Node.url() 和 Node.from_url(),因为 issue 指出这两处会丢失或省略 IPv6 方括号。使用提供的 URL 和 node dict 示例复现问题,然后检查客户端中构造节点 URL 的测试。两种配置都生成 http://[::1]:8108,且请求不再因 httpx.InvalidURL 失败时,即为完成。
由索引模型根据 Issue 内容生成。
描述
A node with an IPv6 address can't be reached. Node.url() joins the host and port as {host}:{port} without enclosing an IPv6 literal in brackets, so every request fails with httpx.InvalidURL before it is sent.
Both ways of configuring a node are affected:
- A URL string such as
"http://[::1]:8108".Node.from_urltakes the host fromurlparse(url).hostname, which strips the brackets, so the host is stored as::1. - A node dict such as
{"host": "::1", "port": 8108, "protocol": "http"}.
Steps to reproduce
import typesense
client = typesense.Client({
"api_key": "xyz",
"nodes": ["http://[::1]:8108"],
"num_retries": 0,
})
print(client.api_call.node_manager.nodes[0].url())
client.operations.is_healthy()
Actual behavior
http://::1:8108
httpx.InvalidURL: Invalid port: ':1:8108'
Expected behavior
The client sends requests to http://[::1]:8108.
Environment
- typesense-python:
master(8727d2b) - httpx 0.28.1
- 主要语言
- Python
- 星标
- 247
- 派生
- 66
- 平均合并
- 1 天 1 小时
- 30 天内合并 PR
- 7
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
typesense/typesense-python 的其他 Issue
-
`MultiSearchResponse` type does not account for union search response shape可能已有人在做 @tharropoulos 于 171 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
typesense/typesense-python#128 ·
-
`documents.Documents.import_()` `batch_size` argument is ignored, type of `import_parameters` is missing `batch_size`可能已有人在做 @tharropoulos 于 244 天前认领。 未关闭
难度 2/5 1-2 天 新手友好度 68/100
typesense/typesense-python#124 ·
-
难度 1/5 1 小时以内 新手友好度 68/100
typesense/typesense-python#100 ·
-
难度 3/5 1-2 天 新手友好度 35/100
typesense/typesense-python#122 · 3 条评论 ·
-
[Bug] - DeprecationWarning on instantiation of Client可能已有人在做 @tharropoulos 于 265 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 55/100
typesense/typesense-python#114 · 8 条评论 ·
查看 typesense/typesense-python 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
CLIMADA-project/climada_python#1337 ·
维护者通常 3 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
8go/matrix-commander#233 ·
-
documentation
难度 2/5 1-3 小时 新手友好度 66/100
-
documentation enhancement priority:high size:M
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
Validate non-divisible effective batch sizes in the Unsloth LoRA backend可能已有人在做 @debesh-biswas 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 70/100