basho/riak_core — pull request #102 by jtuple (2011-10-11 19:42:16+00:00)
Title: Fix BZ1242: Stalled handoff when ring is fixed-up

This pull-request fixes BZ1242 by changing riak_core_vnode:should_handoff to use get_raw_ring rather than get_my_ring. This is necessary because get_my_ring returns the fixed-up version of the ring, which has a locally modified vector clock that will never satisfy the ring_ready check used in should_handoff.

In order to prevent other misuses of the fixed-up ring, this pull-request also adds new tainted ring logic that identifies misuses of the fixed-up ring.

Testing with the tainted logic revealed several additional misuses of the fixed-up ring which are also fixed in this pull-request.

Manual testing revealed no more tainted error messages after all committed changes.