Регрессии в rsync 3.4.3 и принятие изменений, подготовленных с использованием AI

После выхода обновления утилиты для синхронизации файлов rsync 3.4.3 с исправлением 6 уязвимостей, отмечено появление регрессий, нарушающих работоспособность ранее используемых конфигураций. Помимо этого непонимание и недовольство вызвало добавление за последние две недели в репозитории rsync около 50 изменений, подготовленных с использованием AI-модели Claude. Некоторые пользователи связали появление регрессий с генерацией низкокачественных исправлений уязвимостей при помощи AI.

Некоторые из регрессий в rsync 3.4.3:

  • Начали завершаться с ошибкой команды для инкрементального создания резервных копий, в которых было указано несколько опций »--compare-dest»;
  • Стало невозможно собрать rsync на системах с ядрами Linux до версии 5.6 из-за задействования системного вызов openat2 (коммит 1, коммит 2);

  • Перестал работать формат «хост: модуль/путь» (коммит).

  • Перестали восприниматься команды, использующие опцию »--delete-missing-args» вместе с »--files-from» (коммит).

  • При синхронизации стали выдаваться ошибки о нахождении значения modtime_nsec вне допустимого диапазона.

  • Нарушилась сборка на старых версиях macOS.

  • Изменилось поведение опции »--link-dest» (коммит).

  • Возникли сбои при запуске в мультиплексоре терминалов tmux.

Эндрю Триджелл (Andrew Tridgell), основатель проектов samba и rsync, два года назад вернувшийся к сопровождению rsync и добавивший проблемные коммиты, опубликовал заметку с пояснением сложившейся ситуации. По словам Эндрю, проект rsync столкнулся с лавиной отчётов об уязвимостях, многие из которых были сгенерированы через AI. В релизе rsync 3.4.3 появление регрессий стало ценой устранения уязвимостей. Эндрю сознательно предпочёл исправить уязвимости, несмотря на то, что исправления могли нарушить работу некоторых редких, но корректных сценариев использования rsync. Подобные сценарии не покрывались старым тестовым набором и ручными проверками, поэтому регрессии остались не замеченными и будут устранены в следующим выпуске 3.4.4.

Возникшая ситуация побудила Эндрю модернизировать тестовый набор, ввести проверку покрытия кода и реализовать тестирование в системе непрерывной интеграции на разных платформах, а также выполнить анализ потенциальных уязвимостей. Так как Эндрю уже почти 60 лет и он предпочёл бы путешествовать на яхте, а не тратить своё время на устранение уязвимостей в rsync, он решил привлечь AI-ассистенты для выполнения рутинных задач в условиях свалившейся лавины сообщений об уязвимостях. Эндрю разработал архитектуру, план проверки и структуру нового тестового набора, после чего при помощи AI сгенерировал его на Python и заменил им ранее применявшийся тестовый shell-скрипт. При разработке использовалась модель Claude с ручной проверкой результата и перекрёстной проверкой в Codex и Gemini.



Источник: http://www.opennet.ru/opennews/art.shtml? num=65589

©  OpenNet