Store swallows DB errors with `.expect()`, propagate Result through storage layer
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- rust
- Lĩnh vực
- blockchain, distributed-systems
Hướng nghiên cứu
Bắt đầu trong crates/storage/src/store.rs bằng cách xem xét các phương thức công khai của Store và các lệnh gọi StorageBackend hiện đang sử dụng .expect(), sau đó lần theo các caller của chúng trong crates/blockchain/src/store.rs. Hoàn thành nghĩa là các lỗi DB được trả về qua các lớp storage và blockchain store dưới dạng các giá trị Result thay vì gây ra panic.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
crates/storage/src/store.rs calls StorageBackend methods (begin_read, begin_write, put_batch, commit, etc.) but swallows all returned Results via .expect() at 50+ call sites. Any DB error (disk full, corruption, etc.) panics the node instead of being handled gracefully.
The fix is to make Store's public methods return Result<T, Error> and propagate with ?, then update callers in crates/blockchain/src/store.rs accordingly.
Related: #82
Fixing this is also a prerequisite for #266. Without it, the "too many open files" error panics the node rather than being returned as a recoverable error.
- Ngôn ngữ chính
- Rust
- Star
- 82
- Fork
- 28
- Merge trung bình
- 2 ngày 22 giờ
- Pull request đã merge (30 ngày)
- 14
Chuẩn bị môi trường
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 lambdaclass/ethlambda
-
Handle malformed DB dataĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
lambdaclass/ethlambda#529 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Document architectural choicesĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
lambdaclass/ethlambda#521 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
lambdaclass/ethlambda#609 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
lambdaclass/ethlambda#602 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
refactor(blockchain): return block-building phase timings instead of deltaing histogram sumsĐang mởperformance
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
lambdaclass/ethlambda#599 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của lambdaclass/ethlambda
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
trezor/trezor-firmware#7997 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
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 84/100
oxidecomputer/management-gateway-service#506 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
scylladb/nodejs-rs-driver#566 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
A-ABI needs-triage relnotes relnotes-needs-review relnotes-tracking-issue T-lang T-libs T-opsem
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày