Page MenuHomePhabricator

Ignore repository versions on inactive devices in "Repository Servers" panel in Config
ClosedPublic

Authored by epriestley on Sep 5 2016, 5:39 PM.
Tags
None
Referenced Files
F14013188: D16492.id39691.diff
Sat, Nov 2, 1:58 AM
F14013187: D16492.id39690.diff
Sat, Nov 2, 1:58 AM
F14013186: D16492.id39689.diff
Sat, Nov 2, 1:58 AM
F14013185: D16492.id.diff
Sat, Nov 2, 1:57 AM
F14011335: D16492.diff
Thu, Oct 31, 10:55 PM
F13991027: D16492.id.diff
Tue, Oct 22, 8:16 AM
F13971703: D16492.id39691.diff
Oct 17 2024, 2:52 PM
Unknown Object (File)
Oct 1 2024, 7:58 AM
Subscribers
None

Details

Summary

Fixes T11590. Currently, we incorrectly consider cluster repository versions that are (or were) on devices which are no longer part of the active cluster service when building this status screen.

Instead, ignore them. This is just a display bug; the actual ClusterEngine already had similar logic.

Test Plan
  • Added a bad leader record to repository_workingcopyversion.
  • Before patch, got a bad "Partial (1w)" sync:

bad_partial.png (1×1 px, 177 KB)

  • After patch, got a good "Sycnchronized":

good_sync.png (1×1 px, 178 KB)

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

epriestley retitled this revision from to Ignore repository versions on inactive devices in "Repository Servers" panel in Config.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: chad.

This is just a display bug; the actual ClusterEngine already had similar logic.

This is not completely true: ClusterEngine is correct and this is just a display bug, but the ClusterEngine logic isn't that similar:

  • After a hosting change (observed to hosted or vice versa), we reset all the version clocks. This is fine/reasonable.
  • When synchronizing before a read, we examine all versions, but this is correct since we should fail if the leader somehow got deactivated.
  • When synchronizing before a write, we examine all versions, but this is correct since we should fail even if a deactivated node is holding a write lock.
  • We show all versions in DiffusionManage RepositoryStorage, but properly mark disabled nodes as disabled.
chad edited edge metadata.
This revision is now accepted and ready to land.Sep 5 2016, 6:06 PM
epriestley edited edge metadata.
  • Also fix a "cluter" -> "cluster" typo.
This revision was automatically updated to reflect the committed changes.