IPv6 node addresses produce an invalid request URL
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 82/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- python
- Bereich
- backend, networking
Rechercherichtung
Lies zunächst Node.url() und Node.from_url(), da der Issue beide als Stellen nennt, an denen die IPv6-Klammern verloren gehen oder fehlen. Reproduziere das Problem mit den bereitgestellten URL- und node-dict-Beispielen und prüfe anschließend die Client-Tests für die Konstruktion von Node-URLs. Die Aufgabe ist erledigt, wenn beide Konfigurationen http://[::1]:8108 ergeben und die Anfrage nicht mehr mit httpx.InvalidURL fehlschlägt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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
- Vorherrschende Sprache
- Python
- Sterne
- 247
- Forks
- 66
- Ø Merge
- 1 T. 1 Std.
- Gemergte PRs (30 T.)
- 7
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus typesense/typesense-python
-
`MultiSearchResponse` type does not account for union search response shapeEvtl. vergeben @tharropoulos hat das vor 171 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
typesense/typesense-python#128 ·
-
`documents.Documents.import_()` `batch_size` argument is ignored, type of `import_parameters` is missing `batch_size`Evtl. vergeben @tharropoulos hat das vor 244 Tagen übernommen. Offen
Schwierigkeit 2/5 1-2 Tage Anfängerfreundlichkeit 68/100
typesense/typesense-python#124 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 68/100
typesense/typesense-python#100 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
typesense/typesense-python#122 · 3 Kommentare ·
-
[Bug] - DeprecationWarning on instantiation of ClientEvtl. vergeben @tharropoulos hat das vor 265 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 55/100
typesense/typesense-python#114 · 8 Kommentare ·
Alle Issues in typesense/typesense-python
Ähnliche Issues
-
[Bug]: Revit selector reads process ids 2000-2099 as years (flaky AgentClientTests.AYearOrAProcessIdSelectsTheHost)Evtl. vergeben @Wurschdhaud hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
pyrevitlabs/pyRevit#3817 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
521xueweihan/HelloGitHub#4074 ·
-
follow-up
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
Maintainer antworten meist innerhalb von 1 Tag
-
Helm chart: allow setting ingressClassName on the IngressEvtl. vergeben @commarla hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
pgadmin-org/pgadmin4#10658 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100