Skip to content

Context deadline not respected when ringer buffer is full #858

@davestibrany-dd

Description

@davestibrany-dd

Hello,

We notice some scenarios where requests take longer to complete than the context deadline. For example, setting a 10ms timeout but receiving responses in 1-2s. I think that it is because calls to add items to the ring buffer will block if there is no free slot. The response time is essentially unbounded in this scenario, and this causes problems for clients that really need to fail fast if they're not getting responses in an adequate amount of time.

I'm wondering if you seen this come up in practice and put any thought it how to fix? I don't see an easy way to fix this given that the request goroutine will wait on the conditional variable if the slot is full. What do you think?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions