Possible "index out of range" in `equalMarks`
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 45/100
Hướng nghiên cứu
Bắt đầu trong markers/markers.go tại equalMarks, sử dụng trình tái hiện trong examples/04-non-standard-modules/cockroach-is-any-bug/main.go làm trường hợp hồi quy. Chạy ví dụ và xác minh rằng việc so sánh các danh sách marker có độ dài khác nhau không còn gây ra panic, đồng thời IsAny tạo ra kết quả ổn định.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Hello!
I'm interested in carefree iteration over lists whose lengths can vary:
// equalMarks compares two error markers.
func equalMarks(m1, m2 errorMark) bool {
if m1.msg != m2.msg {
return false
}
for i, t := range m1.types {
if !t.Equals(m2.types[i]) {
return false
}
}
return true
}
And I made an example that breaks this code:
package main
import (
"fmt"
"github.com/cockroachdb/errors"
)
type SimpleWrapper struct {
err error
}
func (w SimpleWrapper) Error() string {
return "boom!"
}
func (w SimpleWrapper) Unwrap() error {
return w.err
}
func main() {
stack := errors.WithStack
ref := stack(stack(SimpleWrapper{}))
err := stack(stack(SimpleWrapper{err: stack(errors.New("boom!"))}))
if errors.IsAny(err, ref) {
fmt.Println("gotcha!")
}
/* panic: runtime error: index out of range [3] with length 3
goroutine 1 [running]:
github.com/cockroachdb/errors/markers.equalMarks(...)
github.com/cockroachdb/errors@v1.9.0/markers/markers.go:205
github.com/cockroachdb/errors/markers.IsAny({0x102802528, 0x1400000e438}, {0x14000167f48, 0x1, 0x14000167f28?})
github.com/cockroachdb/errors@v1.9.0/markers/markers.go:186 +0x364
github.com/cockroachdb/errors.IsAny(...)
github.com/cockroachdb/errors@v1.9.0/markers_api.go:64
main.main()
examples/04-non-standard-modules/cockroach-is-any-bug/main.go:26 +0x318
*/
}
Where am I wrong?
- Ngôn ngữ chính
- Go
- Star
- 2.5k
- Fork
- 75
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
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
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 cockroachdb/errors
-
Errors returned from Join are incompatible with errors returned the standard lib's errors.Join Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 52/100
cockroachdb/errors#162 · 1 bình luận ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 48/100
cockroachdb/errors#156 · 20 reaction ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 30/100
cockroachdb/errors#155 · 1 bình luận · 1 reaction ·
-
move subpackages to internal Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
cockroachdb/errors#146 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
cockroachdb/errors#145 · 1 bình luận · 1 reaction ·
Tất cả issue của cockroachdb/errors
Issue tương tự
-
textual definition
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
geneontology/go-ontology#32653 ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 75/100
-
needs design
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Priority/High ready-for-agent Severity/Major Type/Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100