Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Streams: ListStreams, DescribeStream and GetRecords accept a Limit the service refuses

Abierto
#621 0 comentarios 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 2 días

@LeeroyHannigan ya está trabajando en esto.

Desde el 28/10/2026.

  • #633 de @LeeroyHannigan — abierto

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
72/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
cassandra, postgresql, rust

Línea de trabajo

Start with crates/engine/src/streams.rs, focusing on handle_list_streams, handle_describe_stream, and handle_get_records; compare their current Limit handling with the operation-specific bounds and error messages in the issue. Check the storage paths cited for Cassandra and PostgreSQL to confirm validation happens before backend calls. Done means each operation rejects Limits below 1 or above its maximum with the measured ValidationException type and message.

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

Descripción

DynamoDB Streams refuses an out-of-range Limit with a 400 ValidationException. ExtendDB clamps the top of the range on ListStreams and GetRecords, does not check DescribeStream's, and passes a Limit of 0 or below to the storage backend on all three.

Measured on Amazon DynamoDB Streams in us-east-1 on 2026-10-27, with SDK parameter validation turned off so each value reached the service:

Operation Limit Status Response body
ListStreams 0 400 {"__type":"com.amazon.coral.validate#ValidationException","message":"1 validation error detected: Value at 'limit' failed to satisfy constraint: Member must have value greater than or equal to 1"}
ListStreams -1 400 the same body as Limit 0
ListStreams 101 400 {"__type":"com.amazon.coral.validate#ValidationException","message":"One or more parameter values were invalid: Limit cannot be greater than the maximum allowed size: 100"}
DescribeStream 0 400 the same body as ListStreams Limit 0
DescribeStream 101 400 {"__type":"com.amazon.coral.validate#ValidationException","message":"One or more parameter values were invalid: Limit cannot be greater than the maximum: 100"}
GetRecords 0 400 the same body as ListStreams Limit 0
GetRecords 1001 400 {"__type":"com.amazon.coral.validate#ValidationException","message":"One or more parameter values were invalid: Limit should be less than or equal to 1000"}
GetRecords 1000 200

The message for a value above the maximum differs by operation: DescribeStream's ends "the maximum: 100", ListStreams' ends "the maximum allowed size: 100", and GetRecords' reads "Limit should be less than or equal to 1000".

On main (abf8082f):

  • handle_list_streams (crates/engine/src/streams.rs:55) and handle_get_records (streams.rs:307) apply .min(100) and .min(1000), so 101 and 1001 succeed.
  • handle_describe_stream passes the request's Limit to the backend unchanged.
  • A Limit of 0 or below reaches the backend on all three operations. In list_streams, Cassandra computes limit_usize - 1 (crates/storage-cassandra/src/stream_engine.rs:433), which panics in a debug build at Limit 0 when streams exist. PostgreSQL binds limit + 1 into LIMIT (crates/storage-postgres/src/stream_engine.rs, lines 417 to 455), which the database refuses for a Limit of -2 or below.

Fix: refuse a Limit below 1 or above the operation's maximum in the engine, before the backend is called, with the type and message measured above for each operation.

Lenguaje dominante
Rust
Estrellas
517
Forks
60
Merge medio
2 d 22 h
PR fusionados (30 d)
25

Preparar el entorno

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 ExtendDB/extenddb

Todos los issues de ExtendDB/extenddb

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.