DefaultRequestHandler (v2) ignores queue_manager, so the per-task event queue bound (1,024) cannot be configured
Mantenedores costumam responder em até 2 dias
@ishymko já está trabalhando nisso.
Desde 15/10/2026.
Avaliação
Esta issue ainda não foi avaliada.
Descrição
Summary
Passing a queue_manager to DefaultRequestHandler produces
DeprecationWarning: A queue_manager was passed to DefaultRequestHandlerV2, but it is not used: v2 delegates
event streaming to an in-memory ActiveTaskRegistry, so custom or distributed QueueManager implementations
are ignored. ...
ActiveTask then builds its queues with the module default (EventQueueSource() /
DEFAULT_MAX_QUEUE_SIZE = 1024), and nothing on DefaultRequestHandler, ActiveTaskRegistry or
ActiveTask lets an application change it.
Why it matters
The bounded queue is what gives a streaming server backpressure: when a client connects and stops reading, the
queue fills, the producer (the agent executor) blocks and stops pulling tokens from the model, and a slow
subscriber is evicted. We verified this end to end and it works well. But 1,024 events is a fixed trade-off:
- a deployment streaming single tokens may want a smaller bound (less memory per stalled client, faster
eviction); one streaming large chunks may want a different one; - with many concurrent tasks the worst-case memory is
tasks x 1,024 x event size, which the operator cannot
tune.
Evidence
A client that opens POST /message:stream and never reads, against an agent producing 300,000 small events with
no delay: the SDK evicts the stalled sink ("queue full at delivery time"), process memory stays flat (about
80 MB), the server keeps answering other callers, and the task ends at its own deadline. So the mechanism is
sound; only its size is fixed.
Suggested change
Accept an optional size where the queues are created, for example DefaultRequestHandler(..., max_event_queue_size: int = DEFAULT_MAX_QUEUE_SIZE) passed to ActiveTaskRegistry and on to
EventQueueSource. Keep the default so nothing changes for existing users.
Environment
a2a-sdk 1.2.1 and 1.2.2, Python 3.11 to 3.13, FastAPI/Starlette routes via create_jsonrpc_routes and
create_rest_routes.
Found while building slow-consumer backpressure tests for a downstream adapter (lemonade-a2a).
- Linguagem predominante
- Python
- Estrelas
- 2.2k
- Forks
- 511
- Merge médio
- 3d 7h
- PRs com merge (30d)
- 46
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de a2aproject/a2a-python
-
[Bug]: REST task/request id sanitizationTalvez já em andamento @Linux2010 assumiu há 111 dias. Abertamaintainers-only
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
a2aproject/a2a-python#805 · 1 comentário ·
Mantenedores costumam responder em até 2 dias
-
[Bug]: Closing one client from a ClientFactory closes the shared httpx client for every other clientTalvez já em andamento @rohityan assumiu hoje. Aberta
a2aproject/a2a-python#1349 · 2 responsáveis ·
Mantenedores costumam responder em até 2 dias
-
[Bug]: A2A exceptions lost their structured __repr__ after the client error refactor (#761)Talvez já em andamento @rohityan assumiu hoje. Aberta
a2aproject/a2a-python#1347 · 2 responsáveis ·
Mantenedores costumam responder em até 2 dias
-
[Bug]: `A2A-Version` sent as a request parameter is ignored (spec §3.6.1), so a v1.0 request is treated as 0.3Talvez já em andamento @rohityan assumiu há 1 dia. Aberta
a2aproject/a2a-python#1344 · 2 responsáveis ·
Mantenedores costumam responder em até 2 dias
-
[Bug]: Client transports reject responses with unrecognized fields (spec 5.7)Talvez já em andamento @rohityan assumiu há 2 dias. Aberta
a2aproject/a2a-python#1341 · 1 comentário · 2 responsáveis ·
Mantenedores costumam responder em até 2 dias
Todas as issues de a2aproject/a2a-python
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
lidofinance/diffyscan#239 ·
Mantenedores costumam responder em até 1 dia
-
docs: the dev-setup table and AGENTS.md name the reviewed_by guard that CI's Changelog job runsAbertaarea: tools documentation good first issue ready for a contributor
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
eyalgolan/statecraft-israel#873 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
GET rooms API returns 500 due to nonexistent Room.is_active attributeTalvez já em andamento @Mars-60 assumiu hoje. Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
Mantenedores costumam responder em até 1 dia
-
Add cover art to song rowsAbertaenhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 5 dias
-
Harmony OPeNDAP SubSetter (HOSS) Geographic production rssmif16d 7 XYZ_PROV
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
nasa/harmony-autotester#341 ·