Skip to content

[Bug]: Timeout in EventConsumer causes loss of events #768

@pilartomas

Description

@pilartomas

What happened?

This is a code snippet from the EventConsumer implementation:

event = await asyncio.wait_for(
    self.queue.dequeue_event(), timeout=self._timeout
)

It forcefully times out the dequeue_event() coroutine which might have already picked up the event internally. This will result in a loss of that event.

I'm experiencing this behaviour with Redis implementation of the EventQueue. It does a blocking XREADGROUP followed by XACK. It appears that even XREADGROUP (as implemented in redis-py) in isolation isn't capable of handling the timeout.

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

Labels

component: clientIssues related to transport logic and configuration for external apps connecting to A2A agents.status: needs review

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions