grpc / grpc/grpc-java

Add remote and/or local addresses for unix domain socket

Offen
#9,910 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Java
Sterne
12.1k
Forks
4k
Ø Merge
2 T. 17 Std.
Gemergte PRs (30 T.)
37

Beschreibung

This is split out of #9900, which had two pieces. See it for more details. CC @carl-mastrangelo

Unix domain sockets are strange from a local/remote address perspective, as only one of them generally has a well-defined name (file path). We need to see what other languages do, but at the very least for this to be considered completed we should have _one_ of local/remote for both client and server.

Right now apparently the code is missing both, when using KQueue or Epoll, as Netty is not providing either:
```
{io.grpc.internal.GrpcAttributes.securityLevel=NONE, io.grpc.Grpc.TRANSPORT_ATTR_REMOTE_ADDR=null, io.grpc.Grpc.TRANSPORT_ATTR_LOCAL_ADDR=null}
```

We might consider enhancing Netty, but that'd probably take some double-checking in how Linux itself handles this. If we think we can't even add addresses (because we find that Netty did it that way "for a good reason"), we need an attribute of some sort to identify UDS connections, so absolute worst-case would be a SocketAddress that just said "this is a UDS connection" without any other information.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit Issue #9900 für den ursprünglichen Kontext und untersuche dann, wie die KQueue- und Epoll-Pfade Netty-Transportattribute offenlegen. Recherchiere, wie Netty und Linux Unix-Domain-Socket-Adressen darstellen, einschließlich des Verhaltens von Client und Server. Als abgeschlossen gilt die Aufgabe, wenn sowohl Client als auch Server mindestens eine lokale oder entfernte Adresse offenlegen oder eine eindeutige UDS-identifizierende SocketAddress, wenn keine Adressen bereitgestellt werden können.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
backend-api-design, networking
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.