tl;dr bufio.ScannerでScanが終わってもErrはちゃんと見ましょう。以上。 問題 継続的に書き込みのあるTCP接続からの読み込みを、bufio.Scannerをつかって華麗に逐次読み込みしていた。が、どうやらそれが静かに切断され、クライアント(こちら)側のローカルでの処理が先走っているように見える挙動があった。 res, err := ExecRemoteLongScript() defer res.Body.Close() scanner := bufio.NewScanner(res.Body) for scanner.Scan() { // do something for scanner.Bytes() } fmt.Println("done") みたいなので、RemoteScript(概念)が完全に終了していないのに、クライアント(こちら)側でfmt.Prin
![【Go言語】bufio.Scannerの静かな突然死に3営業日ハマった - DRYな備忘録](https://cdn-ak-scissors.b.st-hatena.com/image/square/30b7840da2db2a41bba033f42e9c2373cb3124e4/height=288;version=1;width=512/https%3A%2F%2Fimages-fe.ssl-images-amazon.com%2Fimages%2FI%2F51lqgv%252BWyxL._SL160_.jpg)