Open
Description
バグの説明
現在、認証のためのWebサーバーを一時的に立てており、リクエストの結果やサーバーのエラーをチャネルを使ってメインスレッドに渡している。
チャネルにリクエスト結果が渡るとその時点でチャネルは閉じられる。
この振る舞いによって、閉じられたチャネルにエラーが流れ込む可能性がある。
具体的には
if err := server.ListenAndServe(); err != nil {
if !errors.Is(err, http.ErrServerClosed) {
// サーバー停止以外のエラーをエラーとする
resultCh <- Result{"", err}
}
}
この部分について、認証リクエストが処理されてから、サーバーが停止するときにエラーが発生すると、閉じられたチャネルにエラーが流れ込んでしまいパニックになる可能性があるのではないかと疑っている。
想定される原因・修正方法
並行処理やチャネルを使って通信していることが原因なので、非同期をやめ同期的に処理するようにしたら良さそう
補足
- これが原因でエラーに遭遇したことはありません
- サーバー停止以外のエラーがあり得なければ、問題なさそうに思います
Metadata
Metadata
Assignees
Labels
No labels