Streams: ListStreams, DescribeStream and GetRecords accept a Limit the service refuses
Maintainer thường phản hồi trong vòng 4 ngày
Đá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
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) andhandle_get_records(streams.rs:307) apply.min(100)and.min(1000), so 101 and 1001 succeed.handle_describe_streampasses the request'sLimitto the backend unchanged.- A
Limitof 0 or below reaches the backend on all three operations. Inlist_streams, Cassandra computeslimit_usize - 1(crates/storage-cassandra/src/stream_engine.rs:433), which panics in a debug build at Limit 0 when streams exist. PostgreSQL bindslimit + 1intoLIMIT(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
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của ExtendDB/extenddb
-
Độ khó 2/5 3-5 ngày Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 4 ngày
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
ExtendDB/extenddb#658 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 4 ngày
-
backend:postgresql bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 4 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 4 ngày
-
backend:mongodb bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 77/100
Maintainer thường phản hồi trong vòng 4 ngày
Tất cả issue của ExtendDB/extenddb
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
dekobon/big-code-analysis#1729 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 3 ngày
-
Cline: allowlist capture drops every event because the capture gate ignores `workspaceRoots`Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
akitaonrails/ai-memory#1888 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
peteonrails/voxtype#941 ·
Maintainer thường phản hồi trong vòng 4 ngày
-
bug priority:medium triage:maintainable
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
ccusage/ccusage#2000 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày