Adopt parent upload checksum on first verification only

What does this MR do and why?

A Geo secondary adopted the primary's upload checksum and never read its own file, so a damaged or deleted file stayed marked as verified. Restricting adoption to the primary (this MR's first approach) would make every secondary re-hash all its uploads at once, so this MR follows the cheaper design from the work item instead:

  • Adopt the parent checksum only on the first verification on each site. Reverification always reads the file.
  • Skip the download only when it's safe: when the parent checksum won't be adopted, or when the legacy Geo::UploadRegistry already verified this site's copy (new Geo::UploadRegistry.verification_succeeded_for?).

References

closes: #628305 (closed)

Screenshots or screen recordings

N/A

How to set up and validate locally

spec checks

bundle exec rspec ee/spec/replicators/geo/project_upload_replicator_spec.rb \ 
ee/spec/replicators/geo/*_upload_replicator_spec.rb

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #628305 (closed)

Edited by Dhairya Majmudar

Merge request reports

Loading
Loading