Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở
#621 0 bình luận 0 reaction 1 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 4 ngày

@LeeroyHannigan đang làm issue này rồi.

Từ ngày 28/10/2026.

  • #633 của @LeeroyHannigan — đang mở

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
72/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
cassandra, postgresql, rust
Lĩnh vực
api, backend, databases

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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.

Ngôn ngữ chính
Rust
Star
517
Fork
60
Merge trung bình
4 ngày 10 giờ
Pull request đã merge (30 ngày)
37

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của ExtendDB/extenddb

Tất cả issue của ExtendDB/extenddb

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.