Kurioser Fehler in Tahoe: Netzwerkversagen nach 50 Tagen


Um einen Mac dauerhaft online zu halten, laufen Unmengen an Subroutinen im Hintergrund: Sie stellen Verbindungen zu Servern her, sichern diese ab und schließen sie wieder. Das dafür zuständige Transmission Control Protocol (TCP) ist etabliert und stellt die Basis unter anderem für Web und E-Mail dar. Doch auch bei bewährten Frameworks können sich Fehler einschleichen – vor allem, wenn sie erst nach lang andauernder Betriebszeit zeigen. Einen solchen will Photon, ein Dienst zur Integration von KI-Agenten in Messenger-Plattformen, entdeckt haben: 49,71 Tage nach Neustart beginnt die Zahl der TCP-Verbindungen knapp zu werden. Das führt dazu, dass
innerhalb weniger Stunden das Netzwerk versagt.
Das Phänomen fiel auf, weil die Entwickler mittels dedizierter Test-Macs die Qualität des iMessage-Diensts überprüften. Am 30. März stellten sie fest, dass einige dieser Geräte keine neuen TCP-Verbindungen herstellen konnten, während etablierte weiterbestanden. Auch eine Reaktionskontrolle via Ping funktionierte. Erst ein Neustart behob den Fehler. Die Macs, welche dieses Problem zeigten, wurden alle gleichzeitig gestartet – vor gut 49 Tagen.
Timer mit ÜberrollschutzDie Ursache soll laut den Entwicklern ein systeminterner Zeitstempel sein, welcher beim ordnungsgemäßen Beenden ausgedienter TCP-Verbindungen zum Einsatz kommt. Dieser besteht offenbar aus einem 32-Bit-Millisekundenzähler – das entspricht 49 Tagen, 17 Stunden und gut 47 Sekunden. Am Ende dieser Zeitspanne sollte dieser eigentlich auf null springen. Dies verhindert jedoch eine neu hinzugefügte Funktion ("monotonicity Guard"). Der Zähler bleibt auf dem Maximalwert, und aufgegebene TCP-Sockets bleiben dauerhaft reserviert.
Problem nach weiteren StundenDa die Entdecker zwei weitere Macs vor knapp 49,71 Tagen gestartet hatten, konnten sie ihre Theorie überprüfen. Ein Testscript offenbarte den Anstieg der TIME_WAIT-Werte von TCP-Verbindungen nach der Zeitmarke, während sie vorher die Obergrenze von 30 Sekunden niemals überschritten. Neuneinhalb Stunden später versagten dann die Netzwerkverbindungen der beiden Macs. Die Entdecker arbeiten laut Eigenaussage an einer Übergangslösung, welche ohne Neustart auskommt. Ob sie den Fehler nach dem Responsible-Disclosure-Verfahren gemeldet oder die Erkenntnis beim
XNU-Kernel eingereicht haben, erwähnt der Blog-Artikel nicht.