Geo: backfill and log cursor attempt to sync wikis unconditionally

Summary

When backfilling projects, Geo assumes that all projects have a wiki. In fact, this is not true.

Steps to reproduce

  • Create a project without a wiki on the primary
  • Wait for Geo sync via the log cursor, note that resync_wiki: true in the Geo tracking database on the secondary
  • Remove the Geo::ProjectRegistry entry from the Geo tracking database on the secondary
  • Wait for backfill to recreate the entry, note that resync_wiki: true

In both cases, resync_wiki should be false.

What is the current bug behavior?

Lots of NotFound exceptions on the primary, failed wiki syncs on the secondary

What is the expected correct behavior?

The secondary should detect from the database that no wiki is going to be present, and not bother trying to sync it.

Edited by Nick Thomas