Possible "index out of range" in `equalMarks`
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza en markers/markers.go, en equalMarks, usando el reproductor de examples/04-non-standard-modules/cockroach-is-any-bug/main.go como caso de regresión. Ejecuta el ejemplo y verifica que comparar listas de marcadores de distinta longitud ya no provoque un panic y que IsAny produzca un resultado estable.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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?
- Lenguaje dominante
- Go
- Estrellas
- 2.5k
- Forks
- 75
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de cockroachdb/errors
-
Errors returned from Join are incompatible with errors returned the standard lib's errors.Join Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
cockroachdb/errors#162 · 1 comentario ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
cockroachdb/errors#156 · 20 reacciones ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
cockroachdb/errors#155 · 1 comentario · 1 reacción ·
-
move subpackages to internal Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
cockroachdb/errors#146 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
cockroachdb/errors#145 · 1 comentario · 1 reacción ·
Todos los issues de cockroachdb/errors
Issues similares
-
area/dev-productivity area/disaster-recovery area/ipcei kind/enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
kind/bug status/0-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
🤔 refinement needed
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
equinor/radix-operator#1979 ·