XREAD got unexpected empty response
- Dominant language
- C++
- Stars
- 4.4k
- Forks
- 658
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 10
Description
### Search before asking
- [X] I had searched in the [issues](https://github.com/apache/incubator-kvrocks/issues) and found no similar issues.
### Version
OS:centos6.9
KVRocks:2.3.0
redis-cli:6.2.6/4.0.10
### Minimal reproduce step
I have a kvrocks cluster with 3 masters and 3 slaves.
Connect and blocking read the queue on master-A
```shell
redis-cli -c -h {Master A's IP} -p {Master A's Port} -a password
XREAD BLOCK 10000 STREAMS test-mq $
```
then publish a new message on master-B
```
redis-cli -c -h {Master B's IP} -p {Master B's Port} -a password
XADD test-mq * key1 value1
```
### What did you expect to see?
I would like to see normal consumption data, for example.
1) 1) "test-mq"
2) 1) 1) "1681209941456-0"
2) 1) "key1"
2) "value1"
(3.51s)
### What did you see instead?
I can see that the consume command in step 1 is unable to see the data and only sees an empty message.
(nil)
(10.00s)
### Anything Else?
_No response_
### Are you willing to submit a PR?
- [ ] I'm willing to submit a PR!
Contributor guide
No contributing guide indexed for this repository
Research direction
Reproduce the behavior with the provided redis-cli XREAD BLOCK and XADD commands against separate cluster masters, using the stated Kvrocks and Redis CLI versions. Trace the XREAD blocking behavior across the three-master cluster; done means a message added on master-B is returned to the blocked reader on master-A instead of nil after the timeout.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, redis
- Domain
- databases, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100