Skip to content

ResponseFuture can return or borrow connections from a stale endpoint pool #857

@dkropachev

Description

@dkropachev

Problem

ResponseFuture starts a request on one pool, but later timeout and retry paths can go back through Session._pools using a mutable Host key. If topology refresh changes the host endpoint or swaps out the pool while the request is still in flight, the future can return the orphaned stream id to the new pool or keep working with a pool that no longer belongs to the selected endpoint.

Impact

This can corrupt per-pool request accounting and route follow-up work through connections that no longer match the endpoint chosen for the request.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions