rsync와 분노

2 hours ago 2
  • rsync 유지보수는 보안 보고서 폭증과 AI 활용 논란이 겹치며 테스트, 코드 커버리지, 다중 플랫폼 CI, 보안 스캔, 방어 심층화가 필요해진 상황임
  • 새 Python 테스트 스위트는 기존 셸 스크립트 구조를 대체하되 설계와 검증 계획은 유지관리자가 맡고, Claude, Codex, Gemini는 반복 작업 보조에 쓰인 방식임
  • 3.4.3 릴리스는 보안 수정을 우선하면서 기존 테스트와 수동 테스트가 잡지 못한 일부 유효하지만 특이한 사용 사례에서 회귀가 발생한 릴리스였음
  • pytest는 다른 프로젝트에서 많이 사용했지만 rsync 테스트 스위트의 특정 요구에는 맞지 않아 별도 접근을 설계한 선택이며, LLM은 조심스럽게 써야 하지만 유용한 도구라는 판단임
  • 향후 방향은 회귀를 완화할 3.4.4와 큰 보안 변경을 담을 3.5.0 사이에서 결정 중이며, openrsync는 새 테스트 스위트에서 98개 중 85개를 실패한 상태임

보안 보고서 폭증과 방어 강화

  • rsync 유지관리자는 최근 오픈소스 패키지 개발자들처럼 보안 보고서가 몰려드는 상황을 겪는 중이며, 그중 많은 보고서가 AI 생성물이지만 신중하고 수준 높은 수동 분석도 일부 존재함
  • 보고서 증가가 심해지면서 rsync에는 더 철저한 테스트 스위트, 코드 커버리지 분석, 더 많은 플랫폼의 CI 테스트, 의도적인 보안 이슈 스캔, 방어 심층화 기법이 필요해진 상태임
  • 유지관리자는 은퇴했고 항해를 더 하고 싶지만, 필요한 작업량 때문에 여러 AI 도구를 사용했으며 그 선택을 후회하지 않는 입장임

Python 테스트 스위트와 AI 보조 작업

  • 기존 셸 스크립트 기반 rsync 테스트 스위트는 Python으로 다시 작성됐고, 핵심 설계와 검증 계획은 유지관리자가 직접 맡은 구조임
  • Claude는 반복 작업에 쓰였고 Codex와 Gemini는 교차 확인에 쓰였으며, 단순히 “테스트 스위트를 Python으로 변환”하라고 맡긴 방식은 아니었음
  • 유지관리자는 모든 부분을 직접 검토했고, 많은 CI 시간을 들여 맞췄으며, CI 대기 시간을 줄이기 위해 이후에는 여러 로컬 VM에서 대부분의 테스트를 수행하는 방식으로 이동함
  • 커밋 기록의 co-authored by claude 표시는 전체 소프트웨어 엔지니어링 작업 중 일부만 드러난 결과라는 판단임

LLM 논쟁, pytest 선택, 3.4.3 회귀

  • LLM은 작동 방식을 안다고 해서 쓸모없는 도구가 되는 것은 아니며, 조심해서 써야 하지만 현재 소프트웨어 엔지니어링과 IT 보안 유지보수 환경에서는 유용하다는 입장임
  • rsync 3.4.3은 보안 이슈 수정을 우선하는 쪽으로 의도적으로 기운 릴리스였고, 그 과정에서 유효하지만 특이한 일부 사용 사례가 변경의 영향을 받은 상태임
  • 영향을 받은 사용 사례들은 기존 rsync 테스트 스위트와 수동 테스트에 포함되지 않았으며, GitHub 저장소의 이슈와 PR로 보고된 회귀를 순차적으로 처리 중임
  • pytest는 다른 프로젝트에서 많이 사용했지만, rsync 테스트 스위트에서 필요한 작업 일부가 pytest로는 매우 어렵다고 판단해 별도 테스트 접근을 설계한 선택임

다음 릴리스와 보안 테스트 확대

  • 보안 보고서는 계속 들어오고 있으며, 현재 여러 CVE 작업이 진행 중임
  • 시스템 개발 역량과 보안 지식을 갖춘 다른 개발자들이 합류했고, 일부는 최근의 분노가 계기가 되어 눈에 띄게 된 사람들임
  • 다음 선택지는 일부 회귀를 완화하는 3.4.4와 훨씬 큰 변경을 담은 3.5.0 사이에 있으며, 3.5는 rsync 보안 기준을 크게 끌어올리지만 변화 규모가 큰 릴리스임
  • 큰 변경 세트를 빠르게 적용하려면 rsync 같은 소프트웨어에 포괄적인 테스트 스위트가 필요했고, 새 테스트 스위트 재작성은 그 필요에서 나온 작업임
  • 3.5 릴리스에는 보안 관련 이슈를 다루는 추가 테스트들이 들어갈 예정임

openrsync 비교와 코드 리뷰 요청

  • openrsync를 특정 플랫폼용으로 패키징하겠다는 흐름에 대해, 새 rsync 테스트 스위트를 openrsync에 적용해볼 수 있다는 반응임
  • 실행 예시는 다음 명령임
./runtests.py — rsync-bin=../openrsync/openrsync — use-tcp
  • openrsync는 현재 98개 테스트 중 85개를 실패했으며, 많은 실패가 openrsync에 없는 기능 때문이지만 좋은 결과는 아니라는 평가임
  • 분노를 더 표출하기보다 공개된 코드를 실제로 검토하고 건설적인 비판을 하는 쪽이 바람직하다는 요청임
Read Entire Article