Adapter errors shouldn't cause a reconnection
- 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.