go runtime_error ai_generated true

panic: runtime error: invalid memory address or nil pointer dereference [recovered]

ID: go/goroutine-panic-nil-pointer

Also available as: JSON · Markdown · 中文
80%Fix Rate
85%Confidence
0Evidence
2024-02-11First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
1.21 active

Root Cause

在goroutine中访问了nil指针,通常因为共享数据结构未初始化或依赖未设置。

generic

中文

在goroutine中访问了nil指针,通常因为共享数据结构未初始化或依赖未设置。

Workarounds

  1. 80% success
    go func(){ if p == nil { return }; /* 使用p */ }()
  2. 90% success
    var once sync.Once; once.Do(func(){ p = &T{} })

Dead Ends

Common approaches that don't work:

  1. 70% fail

    数据竞争可能导致goroutine看到nil或部分初始化值。

  2. 80% fail

    recover只能恢复panic,但根因未解决,可能导致后续问题。