grpc / grpc/grpc-java

Ensure there is at most a single pending authorization check per (uid, serviceName) pair at any given time.

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

Beschreibung

**TODO** follow-up from [this conversation](https://github.com/grpc/grpc-java/pull/10633#discussion_r1384267825).

#10566 introduced asynchronous authorization checks. Previously, when there were only synchronous policies, the number of concurrent checks was naturally limited by the number of threads in the fixed-size executor they ran on. Now, the system just spawns new checks as requests come, so this leads to an unbounded number of checks.

This issue is currently mitigated by the fact that most requests should use caching, but we should still improve it for the rest.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit dem Lesen von PR #10566 und der verlinkten Diskussion, um den asynchronen Pfad der Autorisierungsprüfung zu verstehen. Verfolge, wie Prüfungen für ein (uid, serviceName)-Paar erstellt werden, und ergänze oder aktualisiere anschließend die Testabdeckung, die zeigt, dass für dieses Paar zu jedem Zeitpunkt höchstens eine Prüfung ausstehend bleibt. Erledigt ist die Aufgabe, wenn gleichzeitige Anfragen keine unbegrenzte Anzahl von Prüfungen erstellen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
authorization, backend
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.