Twórcy Photon, agenta AI w iMessage, odkryli błąd, który początkowo brzmi dziwnie. Uruchamiają kilka komputerów Mac jako serwery dla swoich agentów: pod koniec marca i na początku kwietnia kilka z nich po prostu przestało działać i nie mogło nawiązać nowych połączeń, dopóki nie zostały ponownie uruchomione.
Deweloperzy dotarli do sedna błędu. Możliwe to było przez rozpatrywanie okresu czasu, po którym komputery Mac odmówiły obsługi sieciowej: działały normalnie przez 49 dni, 17 godzin, 2 minuty i 47 sekund. Od tego momentu nie zaakceptowano żadnych nowych połączeń TCP (Protokół Kontroli Transmisji). Po pewnym czasie nie wysłano i nie zaakceptowano więcej pakietów danych, tylko sprawdzenie pingów działało jak zwykle.
Był powód, dla którego połączenie sieciowe nie powiodło się dokładnie po 49 dniach. jeżeli przeliczysz 49 dni 17 godzin, 2 minuty i 47 sekund na milisekundy, otrzymasz 4,294,967,295 milisekund, czyli 232 milisekundy. W architekturach 32-bitowych system może obliczyć tylko do tego limitu, a następnie skacze z powrotem do zera. Najwyraźniej ta oś czasu spowodowała wadliwe połączenie sieciowe w nowszych wersjach macOS.
Twórcy Photon twierdzą, iż błąd znajduje się również w macOS 15 Catalina i prawdopodobnie w macOS 12 Monterey. Jednak zaradni czytelnicy na Y-Combinator znaleźli dokładną linię w kodzie jądra Apple, który jest tam od sześciu miesięcy , tj. od czasu wydania macOS 26 Tahoe.
Nawiasem mówiąc, błąd w macOS Tahoe jest związany z błędem GPS, który dotknął prawie wszystkie nieco starsze urządzenia w 2019 roku. Apple choćby wydało aktualizację pod koniec października 2019 r., która poprawiła ten błąd, ale wyraźnie podkreśliła, iż przed określoną datą (3. Listopad 2019), ponieważ po tym niezaktualizowany iPhone nie mógł już pobierać aktualizacji bezpośrednio z serwera. Podobny problem grozi w roku 2038.
Źródło: Macwelt









