Skip to content

Adapter errors shouldn't cause a reconnection #314

@anarthal

Description

@anarthal

At some point, I had in a test

request req;
req.push("BLPOP", "any", 3);

conn.async_exec(req, ignore, ...);

Redis responds with a NULL if the BLPOP times out, which causes ignore to issue an error, and that error gets propagated and cancels the connection. I don't think this is the best we can do - the connection is healthy and shouldn't be torn down here.

When parsing, I think we should distinguish between protocol violation errors (e.g. an invalid RESP3 message), which should cause re-connection; and adapter errors, which should make the request fail, but shouldn't cause re-connection. For this to work, we probably need to make adapters resilient to getting nodes after an error has occurred.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions