SSCAN, HSCAN, ZSCAN don't finish when an empty-string member is returned at the end of a page

Abierto
#3,758 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@ggyuchive ya está trabajando en esto.

Desde el 5/11/2026.

  • #3759 de @ggyuchive — abierto

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
77/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
cpp, redis
Área
backend, database

Línea de trabajo

Start at the SSCAN, HSCAN, and ZSCAN implementations and their cursor pagination tests; reproduce the issue with the provided SADD and repeated SSCAN commands using COUNT 1. Trace how an empty member is handled at the end of a page and how the cursor advances. Done when all three commands finish scanning and return the empty-string member without repeating the same page.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug
Search before asking
  • I had searched in the issues and found no similar issues.
Version

Kvrocks unstable at commit baa1da67b3

Minimal reproduce step
SADD s "" 10
SSCAN s 0 COUNT 1
SSCAN s <cursor from the previous reply> COUNT 1
... repeat with each returned cursor
What did you expect to see?
> SSCAN s 0 COUNT 1
1) "0"
2) 1) ""
   2) "10"
What did you see instead?
> SSCAN s 0 COUNT 1
1) "8038996045349715968"
2) 1) ""
> SSCAN s 8038996045349715968 COUNT 1
1) "8038996045349715969"
2) 1) ""
> SSCAN s 8038996045349715969 COUNT 1
1) "8038996045349715970"
2) 1) ""
(the same page forever)
Anything Else?

No response

Are you willing to submit a PR?
  • I'm willing to submit a PR!
Lenguaje dominante
C++
Estrellas
4.5k
Forks
689
Merge medio
1 d 22 h
PR fusionados (30 d)
37

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/kvrocks

Todos los issues de apache/kvrocks

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.