OSSCA Chromium

기여 목록 / 8487196

FileSystem: Report only out-of-space writes to quota

StoragefixIn Review

샌드박스 파일 쓰기 결과를 quota에 보고할 때 실제 공간 부족 오류만 알리도록 수정했습니다. 다른 오류와 성공한 0바이트 쓰기는 공간 부족 처리에서 제외합니다.

문제 설명

기존 코드는 쓰기 결과가 0 이하이면 모두 quota의 OnClientWriteFailed()에 전달했습니다. 디스크 공간과 무관한 오류나 성공한 0바이트 쓰기도 eviction 또는 storage pressure 검사로 이어질 수 있었습니다.

해결 내용

  1. SandboxFileStreamWriter::DidWrite()에서 quota 알림 조건을 write_response == net::ERR_FILE_NO_SPACE로 제한합니다.
  2. 호출자에게 반환하는 원래 쓰기 결과와 취소 처리 흐름은 유지합니다. 할당량 한도를 초과했을 때의 기존 공간 부족 알림도 유지합니다.

테스트 방법

  • 일반·시크릿 모드의 WriteErrorDoesNotNotifyQuota는 음수 오프셋에서 발생한 공간 부족 외 오류가 quota에 기록되지 않고 원래 파일 내용도 유지되는지 검사합니다.
  • 두 모드의 ZeroByteWriteDoesNotNotifyQuota는 0바이트 쓰기가 성공하면서 오류 알림을 만들지 않는지 확인하고, 이후 일반 쓰기도 성공하는지 검사합니다.
  • 기존 Quota_NoSpace 테스트에는 해당 StorageKey의 공간 부족 알림이 한 번 기록되는지 검증을 추가했습니다.

Gerrit 기록상 Patch Set 1는 2026-10-01 UTC에 CQ 실행을 통과했습니다. 보고서 작성 과정에서 Chromium 테스트를 별도로 실행하지는 않았습니다.

관련 이슈와 외부 PR

배운 점

  • 실패와 공간 부족은 같은 의미가 아닙니다. 용량 회수 정책에는 원인을 구분한 오류만 전달해야 합니다.
  • 0바이트 쓰기처럼 결과가 0인 성공도 오류 분기와 함께 검토해야 합니다.

참고 자료