Already went over this in backchannel but adding quick recap. This function needs to a) get index list from local ring and then b) verify those indexes exist on the `TargetNode`. Instead this function is pinging the nodes on the node _sending_ data. The reason the tests passed is because the target nodes just so happened to create the indexes before the `should_handoff` function returned true. I.e. there is a race. I was able to remove the race by adding a 3s sleep to the `yz_solr:core` function (with that modification the test will fail and you will see index failures in the dev3 log file). It would be good to add an intercept which adds a 10s sleep to `yz_solr:core` (but only when it is called for create) during the `yokozuna_essential` test.

Also, rather than using ping this function could use an rpc call to `yz_solr:cores` and compare that list with the index list from the local ring. Keep in mind both lists may need to be sorted first to us `==` for comparison.

Finally, I'm afraid we still need the logic that only waits so long for the indexes to exist. Remember that the `should_handoff` callback is blocking KV handoff from starting. Yokozuna should do its best to not interfere with KV. In this case, if the indexes still don't exist after N tries then we need to give up and let KV proceed. Otherwise people might get very upset about KV handoff being stuff.