cockroachdb / cockroachdb/errors
Decode context.Canceled, context.DeadlineExceeded etc as a reference to the stdlib instance
- Ngôn ngữ chính
- Go
- Star
- 2.5k
- Fork
- 74
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
Currently, instances of the stdlib errors trasnferred over the network are decoded into an object of the same type/value, but not the same instance. So reference comparisons with `==` with the stdlib instance fail.
This matters for e.g. `context.Context.Err()` which describes in its API doc that it returns the standrd errors _unwrapped_ so it's legitimate for a caller to use `==`.
We could address that by adding a special case in the leaf decoder, so that if a leaf is one of the known stdlib errors, we return the stdlib instance instead.
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Bắt đầu bằng cách đọc leaf decoder được đề cập trong issue và theo dõi cách các lỗi của thư viện chuẩn được truyền qua mạng được tái tạo. Kiểm tra cách context.Canceled và context.DeadlineExceeded được biểu diễn, sau đó xác minh rằng quá trình giải mã trả về các instance của thư viện chuẩn để các phép so sánh với == thành công.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- go
- Lĩnh vực
- distributed-systems
- Loại issue
- Tính năng
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100