IPv6 node addresses produce an invalid request URL
Une pull request liée a déjà été fusionnée.
- #155 par @RaphaelFakhri — fusionnée
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 82/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- python
- Domaine
- backend, networking
Piste de recherche
Commencez par lire Node.url() et Node.from_url(), car l’issue les identifie tous deux comme des endroits où les crochets IPv6 sont perdus ou omis. Reproduisez le problème avec les exemples fournis d’URL et de node dict, puis vérifiez les tests du client concernant la construction des URL de nœuds. Le travail est terminé lorsque les deux configurations produisent http://[::1]:8108 et que la requête n’échoue plus avec httpx.InvalidURL.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- Python
- Étoiles
- 247
- Forks
- 66
- Merge moyen
- 22 h 47 min
- PR mergées (30 j)
- 8
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de typesense/typesense-python
-
`MultiSearchResponse` type does not account for union search response shapePeut-être pris @tharropoulos l’a pris il y a 172 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
typesense/typesense-python#128 ·
-
`documents.Documents.import_()` `batch_size` argument is ignored, type of `import_parameters` is missing `batch_size`Peut-être pris @tharropoulos l’a pris il y a 245 jours. Ouverte
Difficulté 2/5 1-2 jours Accessibilité débutants 68/100
typesense/typesense-python#124 ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 68/100
typesense/typesense-python#100 ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
typesense/typesense-python#122 · 3 commentaires ·
-
[Bug] - DeprecationWarning on instantiation of ClientPeut-être pris @tharropoulos l’a pris il y a 266 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
typesense/typesense-python#114 · 8 commentaires ·
Toutes les issues de typesense/typesense-python
Issues similaires
-
type-bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
push_gh-pages fails on master branch on forksPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouvertegood first issue infrastructure
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
kuznia-rdzeni/coreblocks#1135 ·
-
good first issue server
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour
-
documentation priority: high
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
a-lex-s/mealie-telegram-bot#54 ·
Les mainteneurs répondent en général sous 1 jour