Ensure there is at most a single pending authorization check per (uid, serviceName) pair at any given time.
- 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
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