
Ticking Timebomb in Mac OS
Audio Summary
AI Summary
वीडियो में दो तरह के बग्स के बारे में बताया गया है। पहला है Heisenbug, जो तब गायब हो जाता है जब आप उसे डीबग करने की कोशिश करते हैं, जैसे कंसोल लॉग स्टेटमेंट डालने पर। ऐसा इसलिए होता है क्योंकि लॉगिंग से प्रोग्राम धीमा हो जाता है और बग का समय बदल जाता है।
दूसरा और मुख्य बग macOS में एक टाइमिंग समस्या है, जो ठीक 49 दिन, 17 घंटे, 2 मिनट और 47 सेकंड के बाद सामने आती है। यह तब होता है जब कोई Mac इतने लंबे समय तक चालू रहता है। समस्या TCP कनेक्शन से जुड़ी है। जब एक TCP कनेक्शन बंद होता है, तो उसका पोर्ट 30 सेकंड तक 'टाइम वेट' स्टेट में रहता है ताकि पुराने पैकेट भ्रमित न करें।
Mac OS के अंदर, समय को मिलीसेकंड में मापा जाता है और उसे uint32 नामक 32-बिट इंटीजर में स्टोर किया जाता है। uint32 लगभग 4.2 बिलियन तक की वैल्यू स्टोर कर सकता है। 49 दिन, 17 घंटे, 2 मिनट और 47 सेकंड लगभग 4.2 बिलियन मिलीसेकंड के बराबर होते हैं। जब सिस्टम इस समय सीमा को पार करता है, तो uint32 ओवरफ्लो हो जाता है और वैल्यू शून्य पर रीसेट हो जाती है।
इसके कारण, TCP स्टैक यह नहीं पहचान पाता कि टाइम वेट खत्म हो गया है, और पोर्ट्स फ्री नहीं हो पाते। जब बहुत सारे कनेक्शन बन जाते हैं, तो नए कनेक्शन बनाना असंभव हो जाता है, जिससे सिस्टम क्रैश हो जाता है या ब्रिक हो जाता है। यह Y2K38 समस्या के समान है, जहाँ टाइम वैल्यू ओवरफ्लो हो जाती है।
Get summaries like this automatically
BriefTube monitors your YouTube channels, generates AI-powered audio summaries, and delivers them wherever you listen. Telegram, Discord, Slack, or your podcast app. Fully automated.