Page MenuHomePhabricator

Decrease JX.Leader lease duration from 16,000ms to 1,500ms and usurp more aggressively

Authored by epriestley on Apr 17 2017, 7:39 PM.
Referenced Files
Unknown Object (File)
Fri, Jul 19, 3:38 AM
Unknown Object (File)
Mon, Jul 15, 11:16 AM
Unknown Object (File)
Tue, Jul 9, 4:32 AM
Unknown Object (File)
Thu, Jul 4, 8:18 AM
Unknown Object (File)
Sun, Jun 30, 5:32 PM
Unknown Object (File)
Sun, Jun 30, 3:47 AM
Unknown Object (File)
Jun 21 2024, 2:20 PM
Unknown Object (File)
Jun 18 2024, 2:16 PM



Ref T12573. JX.Leader synchronizes the Aphlict connection across multiple windows.

Currently, we only test to see if the leader window has been closed every 16 seconds. Instead, test every 1.5 seconds.

Also, make windows keep trying to become the leader forever. This was removed previously (in D15806) but I think that change decreased robustness here.

Test Plan
  • Opened two windows to the "Realtime" tab in DarkConsole.
  • Saw one become the leader and one become a follower.
  • (Optionally, wait for 10 seconds here to test the "keep trying to become the leader" behavior.)
  • Closed the leader.
  • Saw the follower become the leader after ~1.5 seconds.

Diff Detail

rP Phabricator
Lint Not Applicable
Tests Not Applicable

Event Timeline

We also need to deal with duplicates better in general (T12564) so I'm planning to do that in a robust way at a higher level of the application and then let all the low-level stuff make tradeoffs to be more reliable at the cost of possibly emitting duplicates.

This revision is now accepted and ready to land.Apr 17 2017, 8:16 PM
This revision was automatically updated to reflect the committed changes.