METABYTE
Inapoi la articole

Când „inactiv” nu e inactiv: cum o optimizare a kernelului Linux a devenit o eroare QUIC

Cloudflare a dezvăluit cum o optimizare a kernelului Linux a transformat conexiunile QUIC „leneșe” într-o spirală a morții — și cum au reparat-o.

13 mai 20262 min de citit
Când „inactiv” nu e inactiv: cum o optimizare a kernelului Linux a devenit o eroare QUIC

Inginerii Cloudflare s-au lovit de o eroare care sună ca o glumă: kernelul Linux a decis că o conexiune QUIC „doar se odihnește” și a trimis-o la pământ. De fapt, conexiunea transmitea activ date — doar că foarte eficient.

Problema e la o optimizare care face kernelul să creadă că socketul e inactiv dacă nu au fost apeluri de sistem. QUIC, spre deosebire de TCP, poate funcționa fără ele — datele circulă direct prin spațiul utilizatorului. Așa că kernelul gândea: „Ei, dacă nu mă deranjează, pot să-l omor”. Și conexiunea cădea.

Cloudflare a numit asta „spirala morții”: la reconectări repetate, kernelul le omora din nou, și tot așa. E ca și cum bunica oprește routerul Wi-Fi noaptea să se odihnească, iar dimineața se miră că nu merge internetul.

Patch-ul a fost deja trimis în mainline-ul kernelului. Dezvoltatorii sunt sfătuiți să actualizeze dacă folosesc QUIC și observă întreruperi ciudate — poate nu e arhitectura lor, ci Linux care „are grijă” de economisirea energiei.

Comentariul studioului METABYTE: Și noi am dat vina pe propriul cod de câteva ori, până am aflat că kernelul doar „ajuta” — în stilul „ți-am șters fișierele să nu te încurce”. Dacă rețelele voastre se comportă ciudat, poate merită să vă uitați în adâncurile kernelului, nu să acuzați imediat dezvoltatorii.

URMATORUL PAS

Ti-a placut abordarea?

Aplicam aceleasi principii in proiectele clientilor: AI, automatizari, produse care nu se sting dupa lansare.