macOSに50日連続使用で接続エラーになる時限爆弾。49日に1回再起動すればOK
通信機器側の問題じゃないので要注意。
macOSのネットワークコードに、重大なバグが見つかりました。49日17時間2分47秒でカウンターがいっぱいになって(オーバーフロー)、何の事前警告もないまま接続が落ちるバグです。
ソフトウェア開発のPhotonがブログに公開した詳細によると、50日連続使用しないと出ない症状なので、普通の開発フローを素通りしてまう厄介なバグみたい。結論にはこう書かれていますよ。
OSのテストでもコードのレビューでもフラグが立ちにくい。
仮に見つかったとしても、接続や通信機器側の問題と間違えられてしまう。
49日連続使用のパソコンを診断して、なおかつ「2³²ミリ秒=49.7日」と気づいて初めて解ける謎。
当社では、社内の複数のサーバーでバグの再現にも成功した。オーバーフロー発生前は、IME_WAITが正常に期限切れになって解放されていた(0〜13エントリー)のに、オーバーフロー発生後、TIME_WAITが解放されず数千単位で溜まり、tcp_nowがフリーズして、カーネルのTCPクロックが停止。ほかは全部正常に見えてるのに、そのうちポートがいっぱいになる現象が起こるのだ。
macOS対応のパソコンをずっと起動しっ放しで使う人は「49日17時間2分47秒」、この数字だけ忘れないで。
再起動するより修正したほうがいいので取り組み中だが、修正方法が見つかるまでは、期限前に再起動するよう各自タイマーをセットしよう。
なんか調子おかしいな?という人もそうでない人も、Macは月1くらいで再起動。とりあえず習慣にしたいですね。
Sources: Photon via BigGo

【こちらもおすすめ】
GIZMODO テック秘伝の書
GIZMODO テック秘伝の書
1,650円
Amazonで見る
PR 