Possible "index out of range" in `equalMarks`
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 45/100
Piste de recherche
Commencez dans markers/markers.go, au niveau de equalMarks, en utilisant le reproducteur de examples/04-non-standard-modules/cockroach-is-any-bug/main.go comme cas de régression. Exécutez l’exemple et vérifiez que la comparaison de listes de marqueurs de longueurs différentes ne provoque plus de panic et que IsAny produit un résultat stable.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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/[email protected]/markers/markers.go:205
github.com/cockroachdb/errors/markers.IsAny({0x102802528, 0x1400000e438}, {0x14000167f48, 0x1, 0x14000167f28?})
github.com/cockroachdb/[email protected]/markers/markers.go:186 +0x364
github.com/cockroachdb/errors.IsAny(...)
github.com/cockroachdb/[email protected]/markers_api.go:64
main.main()
examples/04-non-standard-modules/cockroach-is-any-bug/main.go:26 +0x318
*/
}
Where am I wrong?
- Langage dominant
- Go
- Étoiles
- 2.5k
- Forks
- 75
- Merge moyen
- 2 h 5 min
- PR mergées (30 j)
- 1
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de cockroachdb/errors
-
Errors returned from Join are incompatible with errors returned the standard lib's errors.JoinOuverte
Difficulté 3/5 1-2 jours Accessibilité débutants 52/100
cockroachdb/errors#162 · 1 commentaire ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
cockroachdb/errors#156 · 20 réactions ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 30/100
cockroachdb/errors#155 · 1 commentaire · 1 réaction ·
-
move subpackages to internalOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
cockroachdb/errors#146 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
cockroachdb/errors#145 · 1 commentaire · 1 réaction ·
Toutes les issues de cockroachdb/errors
Issues similaires
-
[schema-coverage] elasticstack_kibana_security_detection_rulePeut-être pris @github-actions l’a pris aujourd’hui. Ouverteacceptance-tests phase-coding schema-coverage testing triaged
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
elastic/terraform-provider-elasticstack#5186 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
jaegertracing/jaeger#9830 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
apache/rocketmq-dashboard#6318 ·
Les mainteneurs répondent en général sous 5 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
GoogleCloudPlatform/opentelemetry-operations-collector#710 ·
Les mainteneurs répondent en général sous 1 jour