-
Notifications
You must be signed in to change notification settings - Fork 24.4k
Closed
Description
scenario: client A is blocking on a stream with XREADGROUP:
127.0.0.1:6379> XADD x * f v
"1581590417017-0"
127.0.0.1:6379> XGROUP create x grp $
OK
127.0.0.1:6379> XREADGROUP group grp con block 0 streams x >
after client A is blocked, client B deletes the stream:
127.0.0.1:6379> DEL x
(integer) 1
127.0.0.1:6379>
i would expect that in that very moment client A will be unblocked with NOGROUP the consumer group this client was blocked on no longer exists (because that DEL deleted the stream along with all the groups it had) but it remains blocked. the only way to unblock it is to revive the stream:
client B:
127.0.0.1:6379> XADD x * f v
"1581590682436-0"
127.0.0.1:6379>
client A:
127.0.0.1:6379> XREADGROUP group grp con block 0 streams x >
(error) NOGROUP the consumer group this client was blocked on no longer exists
(219.57s)
127.0.0.1:6379>
i'm not sure if this is by design (maybe we don't want to signalKeyAsReady when a stream is deleted? a bit counter-intuitive) or a bug (current behavior does seem a bit weird)
Morgul
Metadata
Metadata
Assignees
Labels
No labels