WARNING: DATA RACE / Write at ... by goroutine X: / Previous read at ... by goroutine Y: – Golang DATA_RACE_DETECTED

DATA_RACE_DETECTED

Il race detector di Go ('go run -race' o 'go test -race') segnala che due goroutine hanno effettuato accessi simultanei alla stessa variabile di memoria e almeno uno di essi è una scrittura non sincronizzata.

Cosa significa questo errore?

Il race detector di Go ('go run -race' o 'go test -race') segnala che due goroutine hanno effettuato accessi simultanei alla stessa variabile di memoria e almeno uno di essi è una scrittura non sincronizzata.

Messaggio originale

WARNING: DATA RACE / Write at ... by goroutine X: / Previous read at ... by goroutine Y:

Contesto e parole chiave

Alias

  • go test -race data race detected
  • WARNING DATA RACE Go

Messaggi alternativi

  • conflitto di memoria data race rilevato

Prodotti

  • Go Runtime / Go Compiler / Go Modules

Piattaforme

  • Linux
  • macOS
  • Windows

Parole chiave

  • errore-golang-data-race-detected
  • go
  • golang
  • golang.concorrenza.data-race-detected-by-race-detector
  • Goroutine e Concorrenza

Cause possibili

Causa tecnica per Errore Go: WARNING: DATA RACE (Conflitto di Memoria Concorrente Rilevato)

Il race detector di Go ('go run -race' o 'go test -race') segnala che due goroutine hanno effettuato accessi simultanei alla stessa variabile di memoria e almeno uno di essi è una scrittura non sincronizzata.

molto comune

Diagnosi

Verifica e diagnostica per Errore Go: WARNING: DATA RACE (Conflitto di Memoria Concorrente Rilevato)

Eseguire i comandi go build o go vet per rilevare incongruenze a livello di codice.

Come leggere il risultato. Restituisce eventuali errori statici, disallineamenti di tipo o race condition nel codice Go.

go
go vet ./...

Risoluzione

Risoluzione standard per Errore Go: WARNING: DATA RACE (Conflitto di Memoria Concorrente Rilevato)

Difficoltà: mediaRischio: basso

Esegui le modifiche di codice raccomandate per risolvere l'anomalia nel codice sorgente Go.

  1. Ispezionare la riga di codice o stack trace del panic
  2. Applicare il pattern di correzione (gestione nil, sincronizzazione o tipi)
  3. Eseguire go test per confermare la corretta esecuzione
go
go test -v ./...

Domande frequenti

Cosa provoca Errore Go: WARNING: DATA RACE (Conflitto di Memoria Concorrente Rilevato) in Go?

Il race detector di Go ('go run -race' o 'go test -race') segnala che due goroutine hanno effettuato accessi simultanei alla stessa variabile di memoria e almeno uno di essi è una scrittura non sincronizzata.

Approfondimenti

Schede correlate