boostorg / boostorg/redis

Adapter errors shouldn't cause a reconnection

Open
#314 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
282
Forks
49
PR merge metrics
No merged PRs in 30d

Description

At some point, I had in a test

```cpp
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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.