MENU

MacBook、iMac、Mac miniなどを含むmacOS搭載デバイスにおいて、通信機能に致命的な影響を及ぼすバグの存在が明らかになりました

Amazon Audible

Macを再起動せずに使い続けていると、ある日突然動作が極端に重くなりネットに繋がらなくなる。そんな奇妙な現象の原因が、macOSの奥底に潜む「49日問題」であることが明らかになった。

ノートPCを閉じるだけのスリープ運用が当たり前になった現代。多くのユーザーが知らず知らずのうちに、この時限爆弾のスイッチを押している。

不具合の引き金となるのは、Macの電源を入れてからちょうど「49日と17時間2分47.296秒」という正確なタイミング。

原因はネットワーク接続を管理する仕様にある。macOSは通信の継続時間などを計測する際、32ビットのカウンターを採用している。このカウンターが格納できる上限値は「2の32乗」ナノ秒。これを日時に換算した限界点が、先述の約49日なのだ。

稼働時間がこの上限を突破した瞬間、カウンターがオーバーフローを起こして処理を停止。本来なら速やかに破棄されるべき過去のネットワーク通信がシステム内に滞留し始める。

結果としてCPUの負荷が異常に跳ね上がり、通常1万6384個用意されているポートを次々と食いつぶす。やがて新規のTCP接続が一切できなくなり、ブラウザを開いてもアプリを立ち上げても通信エラーを吐き出す仕組みだ。

厄介なのは、すでに確立されている古い通信やping応答はそのまま生きているため、ユーザー側からは原因不明の回線トラブルに見えやすい点。セキュリティ研究を主導するPhotonの分析により、ようやくこの不具合の全貌が浮き彫りとなった。

ベテランのPCユーザーであれば、この「49日」という数字に強烈な既視感を覚えるはずだ。かつてのWindows 95や98も、連続稼働49.7日でOSがクラッシュする有名なバグを抱えていた。2038年にLinuxなどUNIX系OSが誤作動を起こす「2038年問題」も同根のトラブル。

高性能なAppleシリコンを積み、高度な処理を涼しい顔でこなす最新のMac。その裏側で、令和の時代にこれほどレガシーな設計ミスが露呈したのは非常に興味深い。

現時点でユーザーができる有効な対策は「定期的な再起動」の一択。システムを再起動すればカウンターはゼロにリセットされ、再び49日間の猶予が生まれる。

Appleは遠からず、マイナーアップデートでこの32ビットの時限爆弾をひっそりと取り除くはずだ。修正パッチが降ってくるまでは、月に一度はMacを完全にシステム終了させる。そんなアナログな習慣が、最先端のデバイスを快適に保つ鍵となる。

Source:Photon

この記事が気に入ったら
フォローしてね!

シェアしてくれると励みになります
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私の始まりはプログラマーとしてシステム開発に携わり、ガジェットの内部構造や技術的な課題を深く理解してきました。その後は営業マンとして、技術が市場でどのように受け入れられ、どのようなニーズがあるのかを現場で学んできました。
この「技術的な解像度の高さ」と「市場における現実的な価値」という二つの視点が、このブログで情報をお届けする上での私の基盤となっています。

ちなみに私のガジェット愛の原点は、初代iPhoneよりもさらに昔、いにしえのPDA『Palm』に遡ります。あの頃の端末は「できないこと」だらけでした。しかし、限られた環境の中で「どうすれば目的を達成できるか」と知恵を絞り、工夫を凝らす作業こそが、私にとって最高の楽しみでした。

長らくは初代iPhoneからの筋金入りApple信者でしたが、進化の速度が凄まじい昨今、フラッグシップの安定感を持つApple製品に加え、多種多様な機能を提供するAndroid端末を深く使い込む機会が増えています。

気になる項目をクリックしてね