[Bug]: get_info_for_dispatch default resolves to empty owner in multi-owner deployments
Maintainer antworten meist innerhalb von 2 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 65/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Bereich
- backend
Rechercherichtung
Der Fehler befindet sich in push_notification_config_store.py und inmemory_push_notification_config_store.py. Lies zunächst die standardmäßige get_info_for_dispatch-Methode und prüfe, wie sie get_info mit einem leeren ServerCallContext aufruft. Untersuche anschließend die owner_resolver-Logik im In-Memory-Store, um die Owner-Partition für die leere Zeichenkette zu verstehen. Die Korrektur besteht darin, die Methode abstrakt zu machen, aber prüfe zuerst vorhandene Subklassen. Führe alle vorhandenen Tests für Push-Benachrichtigungen aus, um das Verhalten zu verifizieren.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
What happened?
PushNotificationConfigStore.get_info_for_dispatch(task_id) is the cross-owner read used by the dispatch loop it must return every config for a task regardless of which owner registered it. But the shipped (non-abstract) default falls back to an owner-scoped get_info with an empty context:
# push_notification_config_store.py (v1.1.3) — default fallback
async def get_info_for_dispatch(self, task_id):
logger.warning('%s does not override get_info_for_dispatch ...', type(self).__name__)
return await self.get_info(task_id, ServerCallContext()) # empty context
get_info resolves the owner partition from that context:
# inmemory_push_notification_config_store.py — get_info
owner = self.owner_resolver(context) # empty ctx -> empty-string owner
owner_infos = self._get_owner_push_notification_infos(owner)
return list(owner_infos.get(task_id, [])) # that partition is empty -> []
So ServerCallContext() -> empty-string owner -> returns [] -> every push notification is silently dropped in any multi-owner deployment. The only signal is a per-call logger.warning.
Proposed fix: #1180 fixes this by marking the method as abstractmethod. However, the method shipped as non-abstract (latest released versions at this time - v1.1.4), so this is a breaking change to a public ABC (existing subclasses fail to instantiate on upgrade) and should be a part of a major release.
Relevant log output
Code of Conduct
- I agree to follow this project's Code of Conduct
- Vorherrschende Sprache
- Python
- Sterne
- 2.2k
- Forks
- 518
- Ø Merge
- 3 T. 12 Std.
- Gemergte PRs (30 T.)
- 39
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
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 a2aproject/a2a-python
-
[Bug]: `A2A-Version` validation ignores minor versions and the query parameterEvtl. vergeben @rohityan hat das vor 60 Tagen übernommen. Offencomponent: server status:awaiting response
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
a2aproject/a2a-python#1204 · 3 Kommentare · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 2 Tagen
-
[Bug]: REST task/request id sanitizationEvtl. vergeben @Linux2010 hat das vor 119 Tagen übernommen. Offenmaintainers-only
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
a2aproject/a2a-python#805 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
[Bug]: TaskEventStream methods don't receive ServerCallContextEvtl. vergeben @rohityan hat das vor 2 Tagen übernommen. Offen
a2aproject/a2a-python#1374 · 2 zugewiesene Personen ·
Maintainer antworten meist innerhalb von 2 Tagen
-
[Bug]: v0.3 JSON-RPC compat adapter returns -32603 for all A2A errors (e.g. TaskNotFound should be -32001)Evtl. vergeben @shwetangsinha0509 hat das vor 2 Tagen übernommen. Offencomponent: server status:awaiting response
a2aproject/a2a-python#1368 · 2 Kommentare · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 2 Tagen
-
[Bug]: VersionedDatabaseTaskStore get() and delete() fail with "no such table" when initialize() was not calledEvtl. vergeben @cchinchilla-dev hat das vor 3 Tagen übernommen. Offencomponent: server status:awaiting response
a2aproject/a2a-python#1356 · 1 Kommentar · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in a2aproject/a2a-python
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
google-agentic-commerce/AP2#388 ·
-
area:codegen backend:cuda backend:hip bug direction:input
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
CrossGL/crosstl#3061 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
rlaope/oh-my-hermes#2304 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
mochan-tk/agentic-dev-kit-for-codex#64 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Windows ARM memory-leakOffenbug docs performance
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
Maintainer antworten meist innerhalb von 3 Tagen