diff --git a/src/t_stream.c b/src/t_stream.c index da43fce18..d9db97c3c 100644 --- a/src/t_stream.c +++ b/src/t_stream.c @@ -512,7 +512,9 @@ int streamAppendItem(stream *s, robj **argv, int64_t numfields, streamID *added_ { lp = NULL; } else if (server.stream_node_max_entries) { - int64_t count = lpGetInteger(lpFirst(lp)); + unsigned char *lp_ele = lpFirst(lp); + /* Count both live entries and deleted ones. */ + int64_t count = lpGetInteger(lp_ele) + lpGetInteger(lpNext(lp,lp_ele)); if (count >= server.stream_node_max_entries) { /* Shrink extra pre-allocated memory */ lp = lpShrinkToFit(lp);