mirror of https://github.com/status-im/consul.git
parent
cf928f6e22
commit
9f2989424e
|
@ -6,6 +6,8 @@ IMPROVEMENTS:
|
||||||
|
|
||||||
BUG FIXES:
|
BUG FIXES:
|
||||||
|
|
||||||
|
* agent: Updated memberlist to pull in a fix for negative RTT measurements and their associated log messages about rejected coordinates. [[GH-3704](https://github.com/hashicorp/consul/issues/3704)]
|
||||||
|
|
||||||
## 1.0.1 (November 20, 2017)
|
## 1.0.1 (November 20, 2017)
|
||||||
|
|
||||||
FEATURES:
|
FEATURES:
|
||||||
|
|
|
@ -251,10 +251,17 @@ func (m *Memberlist) probeNode(node *nodeState) {
|
||||||
nackCh := make(chan struct{}, m.config.IndirectChecks+1)
|
nackCh := make(chan struct{}, m.config.IndirectChecks+1)
|
||||||
m.setProbeChannels(ping.SeqNo, ackCh, nackCh, probeInterval)
|
m.setProbeChannels(ping.SeqNo, ackCh, nackCh, probeInterval)
|
||||||
|
|
||||||
|
// Mark the sent time here, which should be after any pre-processing but
|
||||||
|
// before system calls to do the actual send. This probably over-reports
|
||||||
|
// a bit, but it's the best we can do. We had originally put this right
|
||||||
|
// after the I/O, but that would sometimes give negative RTT measurements
|
||||||
|
// which was not desirable.
|
||||||
|
sent := time.Now()
|
||||||
|
|
||||||
// Send a ping to the node. If this node looks like it's suspect or dead,
|
// Send a ping to the node. If this node looks like it's suspect or dead,
|
||||||
// also tack on a suspect message so that it has a chance to refute as
|
// also tack on a suspect message so that it has a chance to refute as
|
||||||
// soon as possible.
|
// soon as possible.
|
||||||
deadline := time.Now().Add(probeInterval)
|
deadline := sent.Add(probeInterval)
|
||||||
addr := node.Address()
|
addr := node.Address()
|
||||||
if node.State == stateAlive {
|
if node.State == stateAlive {
|
||||||
if err := m.encodeAndSendMsg(addr, pingMsg, &ping); err != nil {
|
if err := m.encodeAndSendMsg(addr, pingMsg, &ping); err != nil {
|
||||||
|
@ -284,11 +291,6 @@ func (m *Memberlist) probeNode(node *nodeState) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mark the sent time here, which should be after any pre-processing and
|
|
||||||
// system calls to do the actual send. This probably under-reports a bit,
|
|
||||||
// but it's the best we can do.
|
|
||||||
sent := time.Now()
|
|
||||||
|
|
||||||
// Arrange for our self-awareness to get updated. At this point we've
|
// Arrange for our self-awareness to get updated. At this point we've
|
||||||
// sent the ping, so any return statement means the probe succeeded
|
// sent the ping, so any return statement means the probe succeeded
|
||||||
// which will improve our health until we get to the failure scenarios
|
// which will improve our health until we get to the failure scenarios
|
||||||
|
|
|
@ -17,7 +17,7 @@ type Packet struct {
|
||||||
|
|
||||||
// Timestamp is the time when the packet was received. This should be
|
// Timestamp is the time when the packet was received. This should be
|
||||||
// taken as close as possible to the actual receipt time to help make an
|
// taken as close as possible to the actual receipt time to help make an
|
||||||
// accurate RTT measurements during probes.
|
// accurate RTT measurement during probes.
|
||||||
Timestamp time.Time
|
Timestamp time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
{"path":"github.com/hashicorp/hil","checksumSHA1":"kqCMCHy2b+RBMKC+ER+OPqp8C3E=","revision":"1e86c6b523c55d1fa6c6e930ce80b548664c95c2","revisionTime":"2016-07-11T23:18:37Z"},
|
{"path":"github.com/hashicorp/hil","checksumSHA1":"kqCMCHy2b+RBMKC+ER+OPqp8C3E=","revision":"1e86c6b523c55d1fa6c6e930ce80b548664c95c2","revisionTime":"2016-07-11T23:18:37Z"},
|
||||||
{"path":"github.com/hashicorp/hil/ast","checksumSHA1":"UICubs001+Q4MsUf9zl2vcMzWQQ=","revision":"1e86c6b523c55d1fa6c6e930ce80b548664c95c2","revisionTime":"2016-07-11T23:18:37Z"},
|
{"path":"github.com/hashicorp/hil/ast","checksumSHA1":"UICubs001+Q4MsUf9zl2vcMzWQQ=","revision":"1e86c6b523c55d1fa6c6e930ce80b548664c95c2","revisionTime":"2016-07-11T23:18:37Z"},
|
||||||
{"path":"github.com/hashicorp/logutils","checksumSHA1":"vt+P9D2yWDO3gdvdgCzwqunlhxU=","revision":"0dc08b1671f34c4250ce212759ebd880f743d883","revisionTime":"2015-06-09T07:04:31Z"},
|
{"path":"github.com/hashicorp/logutils","checksumSHA1":"vt+P9D2yWDO3gdvdgCzwqunlhxU=","revision":"0dc08b1671f34c4250ce212759ebd880f743d883","revisionTime":"2015-06-09T07:04:31Z"},
|
||||||
{"path":"github.com/hashicorp/memberlist","checksumSHA1":"W1MrXPyP9I630SENN7b9Vn/K5r0=","revision":"caa5d20d6a642b7543b3745e54031a96008bee57","revisionTime":"2017-11-10T01:18:39Z"},
|
{"path":"github.com/hashicorp/memberlist","checksumSHA1":"88DoUaWD6hS1KTt57RMQ7wxHu/k=","revision":"9bdd37bfb26bd039c08b0f36be6f80ceede4aaf3","revisionTime":"2017-11-17T04:34:18Z"},
|
||||||
{"path":"github.com/hashicorp/net-rpc-msgpackrpc","checksumSHA1":"qnlqWJYV81ENr61SZk9c65R1mDo=","revision":"a14192a58a694c123d8fe5481d4a4727d6ae82f3","revisionTime":"2015-11-16T02:03:38Z"},
|
{"path":"github.com/hashicorp/net-rpc-msgpackrpc","checksumSHA1":"qnlqWJYV81ENr61SZk9c65R1mDo=","revision":"a14192a58a694c123d8fe5481d4a4727d6ae82f3","revisionTime":"2015-11-16T02:03:38Z"},
|
||||||
{"path":"github.com/hashicorp/raft","checksumSHA1":"JjJtGJi1ywWhVhs/PvTXxe4TeD8=","revision":"6d14f0c70869faabd9e60ba7ed88a6cbbd6a661f","revisionTime":"2017-10-03T22:09:13Z","version":"v1.0.0","versionExact":"v1.0.0"},
|
{"path":"github.com/hashicorp/raft","checksumSHA1":"JjJtGJi1ywWhVhs/PvTXxe4TeD8=","revision":"6d14f0c70869faabd9e60ba7ed88a6cbbd6a661f","revisionTime":"2017-10-03T22:09:13Z","version":"v1.0.0","versionExact":"v1.0.0"},
|
||||||
{"path":"github.com/hashicorp/raft-boltdb","checksumSHA1":"QAxukkv54/iIvLfsUP6IK4R0m/A=","revision":"d1e82c1ec3f15ee991f7cc7ffd5b67ff6f5bbaee","revisionTime":"2015-02-01T20:08:39Z"},
|
{"path":"github.com/hashicorp/raft-boltdb","checksumSHA1":"QAxukkv54/iIvLfsUP6IK4R0m/A=","revision":"d1e82c1ec3f15ee991f7cc7ffd5b67ff6f5bbaee","revisionTime":"2015-02-01T20:08:39Z"},
|
||||||
|
|
Loading…
Reference in New Issue