ubik: Try to detect VOTE_Beacon errors
authorAndrew Deason <adeason@sinenomine.net>
Tue, 20 Nov 2012 20:18:47 +0000 (14:18 -0600)
committerDerrick Brashear <shadow@your-file-system.com>
Tue, 4 Dec 2012 11:22:16 +0000 (03:22 -0800)
commit4d4668b1618a2bd5b94ed4620464787f42d11cab
tree8ac54d77c6d9555db3a2513de744440a9fd65a81
parent7c8373c8c27abdfa316c6526aa14654caed3e7f8
ubik: Try to detect VOTE_Beacon errors

Currently the way ubik dbsites vote for each other is via the "return
value" of the Beacon VOTE RPC. Since this is really an Rx abort, this
can easily collide with actual errors on the wire, such as rxkad
errors.

Try to detect these by detecting vote times that are very different
than the current timestamp (more than an hour in the future or past),
and treat it like a network error.

If we do not do this, a single site reporting an error can cause us to
never reach quorum, since we calculate our sync site expiration based
on the oldest 'yes' vote, which for most known Rx aborts will be far
in the past.

Change-Id: I28cf4c520bbbe9e98eb55947476c8785d3c8ec0b
Reviewed-on: http://gerrit.openafs.org/8486
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
src/ubik/beacon.c