A deadlock would happen if the monitor attempted to write multiple
points. Since the test only reads the first set of points written to the
channel and does not read from the channel on the second read, the
WritePoints call deadlocks while the monitor is trying to close since
the monitor requires all of its goroutines to end. But, one of the
goroutines is attempting to call WritePoints which is waiting for the
test to read the point it is trying to write.
This change ensures that the done channel is closed before calling close
so the WritePoints call can exit.
* Improve the ping endpoint so that it can optionally check for leader agreement across all meta servers
* Add Ping method to the meta client
* Fix ClusterID tests
* Remove WaitForLeader from meta client and remove unnecessary references to it
This change adds support for diagnostics by decomposing the existing
interface into two interfaces -- one for stats, and the other for
diags. It also adds some basic monitor of system, network, and the Go
runtime.