Regresje w rsync 3.4.3 i przyjęcie zmian przygotowanych z użyciem AI

Po wydaniu aktualizacji narzędzia do synchronizacji plików rsync 3.4.3, które zawiera poprawki dla 6 zidentyfikowanych luk, zaobserwowano regresje, które zakłócają funkcjonowanie wcześniej używanych konfiguracji. Dodatkowo, niezadowolenie wywołało dodanie w ciągu ostatnich dwóch tygodni około 50 zmian w repozytorium rsync, przygotowanych przy użyciu modelu AI Claude. Niektórzy użytkownicy powiązali powstawanie regresji z generowaniem niskiej jakości poprawek luk przy pomocy AI.

Niektóre z regresji w rsync 3.4.3:

  • Zaczęły kończyć się błędem przyjęcia dla inkrementalnego tworzenia kopii zapasowych, w których wskazano wiele opcji „—compare-dest”;
  • Stało się
    niemożliwość zbudowania rsync na systemach z jądrami Linux starszymi niż wersja 5.6 z powodu użycia wywołania systemowego openat2 (kommit 1, kommit 2);
  • Przestał działać format „host::module/path” (kommit).
  • Prestano rozpoznawać polecenia korzystające z opcji
    „—delete-missing-args” razem z „—files-from” (kommit).
  • Podczas synchronizacji zaczęły występować błędy dotyczące wartości modtime_nsec poza dopuszczalnym zakresem.
  • Zaburzono budowę na starszych wersjach macOS.
  • Zmieniło się zachowanie opcji „—link-dest” (kommit).
  • Pojawiły się awarie podczas uruchamiania w multiplexerze terminali tmux.

Andrew Tridgell, założyciel projektów samba i rsync, który dwa lata temu wrócił do wsparcia dla rsync i dodał problematyczne komity, opublikował notatkę z wyjaśnieniem zaistniałej sytuacji. Według Andrew, projekt rsync zmierzył się z lawiną raportów o lukach, z których wiele zostało wygenerowanych przez AI. W wydaniu rsync 3.4.3 pojawienie się regresji okazało się ceną za wyeliminowanie luk. Andrew świadomie zdecydował się naprawić luki, mimo że poprawki mogły zakłócić działanie niektórych rzadkich, ale poprawnych scenariuszy użycia rsync. Takie scenariusze nie były pokryte starym zestawem testów i ręcznymi kontrolami, dlatego regresje pozostały niezauważone i zostaną usunięte w następnej wersji 3.4.4.

Napotkana sytuacja skłoniła Andrzeja do modernizacji zestawu testowego, wprowadzenia kontroli pokrycia kodu i wdrożenia testowania w systemie ciągłej integracji na różnych platformach, a także przeprowadzenia analizy potencjalnych luk w zabezpieczeniach. Ponieważ Andrzej ma już prawie 60 lat i wolałby podróżować na jachcie, zamiast tracić czas na eliminowanie luk w rsync, postanowił zatrudnić asystentów AI do wykonywania rutynowych zadań w obliczu lawiny wiadomości o podatnościach. Andrzej opracował architekturę, plan weryfikacji i strukturę nowego zestawu testowego, po czym przy pomocy AI wygenerował go w Pythonie i zastąpił nim wcześniej używany skrypt shellowy. W trakcie opracowywania użyto modelu Claude z ręczną weryfikacją wyników i krzyżową weryfikacją w Codex i Gemini.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster