Commit Graph

6147 Commits

Author SHA1 Message Date
Frank Schroeder 24d8bdfb02 agent: fix data race between consul server and local state 2017-07-07 09:22:34 +02:00
Frank Schroeder 4322b7217c serf: monkey patch data race in github.com/hashicorp/serf
https://github.com/hashicorp/serf/pull/476

This should be replaced when the patch is merged upstream
and the library is upgraded.
2017-07-07 09:22:34 +02:00
Frank Schroeder 0ed76615d3 rpc: monkey patch fix for data races for localState
The tests that use the localState of the agent access the internal
variables and call methods which are not guarded by locks creating
data races in tests. While the use of internal variables is somewhat
easy to spot the fact that not all methods are thread-safe is a
surprise.

A proper fix requires the localState struct to be moved into its own
package so that tests in the agent can only access the external
interface.

However, the localState is currently dependent on the agent.Config
which would create a circular dependency. Therefore, the Config
struct needs to be moved first for this to happen.

This patch literally monkey patches the use of the lock around the
cases which have data races and marks them with a
// todo(fs): data race comment.
2017-07-07 09:22:34 +02:00
Frank Schroeder 96c03ce73b rpc: try shutting down leader first to avoid hang in TestLeader_LeftServer 2017-07-07 09:22:34 +02:00
Frank Schroeder 2eb2941e8c rpc: fix logging and try quicker timing of TestServer_JoinSeparateLanAndWanAddresses 2017-07-07 09:22:34 +02:00
Frank Schroeder 98510f898c rpc: less agressive raft timeouts
Allowing more time for raft to consolidate should
drop the number of leader elections.
2017-07-07 09:22:34 +02:00
Frank Schroeder 50c81a9397 rpc: run agent/consul tests in parallel 2017-07-07 09:22:34 +02:00
Frank Schroeder b3189a566a rpc: refactor sessionTimers and fix racy tests
The sessionTimers map was secured by a lock which wasn't used
properly in the tests. This lead to data races and failing tests
when accessing the length or the members of the map.

This patch adds a separate SessionTimers struct which is safe
for concurrent use and which ecapsulates the behavior of the
sessionTimers map.
2017-07-07 09:22:34 +02:00
Frank Schroeder 06ad8e96be rpc: fix TestServer_Leave
wait for the leader election.
2017-07-07 09:22:34 +02:00
Frank Schroeder 4a073aec1c rpc: fix TestSession_Renew
make the timing less tight
2017-07-07 09:22:34 +02:00
Frank Schroeder 77ff9f680f rpc: fix TestReadyForConsistentRead
timing was too tight. Standardized name.
2017-07-07 09:22:34 +02:00
Frank Schroeder e3252f921a rpc: fix for 'no leader' in TLS tests
Ensure both servers know about each other before looking
for a leader.
2017-07-07 09:22:34 +02:00
Frank Schroeder 2497b8416b rpc: fix TestServer_JoinWAN_Flood
The second server in the first data center should not be
in bootstrap mode.
2017-07-07 09:22:34 +02:00
Frank Schroeder 7af30dd7d7 rpc: provide unique node names for server and client 2017-07-07 09:22:34 +02:00
Frank Schroeder 457910b191 rpc: prefix log output with test name 2017-07-07 09:22:34 +02:00
Frank Schroeder c33f7ecbe2 rpc: discover serf wan port before starting serf lan
When using dynamic ports for the serf clusters then
the actual bind port of the serf WAN cluster needs to
be discovered before the serf LAN cluster is started
since the serf LAN cluster announces the port of the WAN
cluster.
2017-07-07 09:22:34 +02:00
Frank Schroeder 84c90cbd07 rpc: bind rpc test server to port 0 2017-07-07 09:22:34 +02:00
Frank Schroeder 7f5957ee93 rpc: refactor: unify test server setup 2017-07-07 09:22:34 +02:00
Frank Schroeder 325637b6be rpc: fix typos 2017-07-07 09:22:34 +02:00
Frank Schroeder 6a1ab1a2e0 api: refactor: unify naming of API tests 2017-07-07 09:22:34 +02:00
Frank Schroeder 97b7578ccd api: refactor: prefix all API tests with API_ 2017-07-07 09:22:34 +02:00
Frank Schroeder 85aa360843 agent: refactor: log to stderr during tests 2017-07-07 09:22:34 +02:00
Frank Schroeder 865a825116 agent: refactor: use handler for test http tls server 2017-07-07 09:22:34 +02:00
Frank Schroeder 21a0e94aea agent: refactor: make address translation part of the agent 2017-07-07 09:22:34 +02:00
Chris Griggs 38f92aa4e8 Update # of ports (#3238)
I counted twice.
2017-07-06 13:50:12 -07:00
James Phillips 3388daf479 Adds links to Lifeguard info. 2017-07-06 12:19:39 -07:00
James Phillips b45f49c230 Update CHANGELOG.md 2017-07-06 09:46:26 -07:00
Preetha Appan d263d0266b Updating CHANGELOG.md 2017-07-06 09:19:22 -05:00
preetapan 8ee9185deb Merge pull request #3231 from hashicorp/issue_3230
Fixes deadlock between barrier write and leader notify channel read .…
2017-07-06 09:11:53 -05:00
Preetha Appan ae656575ea Rename to raftNotifyCh, fix typo 2017-07-06 09:10:36 -05:00
preetapan ff46eb8e4c Merge pull request #3236 from hashicorp/serf_update
Update serf to pull in disk space failure recovery changes
2017-07-06 08:59:46 -05:00
Preetha Appan bb0e0bdff9 Update serf to pull in disk space failure recovery changes 2017-07-06 08:58:42 -05:00
Preetha Appan 777504ff0e Fixes deadlock between barrier write and leader notify channel read . Fixes #3230 2017-07-05 17:09:18 -05:00
Stu Small aaf73c99e1 Fix mistake in curl example for join agent API call 2017-07-03 00:11:18 +02:00
James Phillips cb89e7eff1 Update CHANGELOG.md 2017-06-29 16:27:17 -07:00
Grégoire Seux 2e7c202ca2 Correctly forward Host header in healthcheck (#3203)
Host header must be set explicitely on http requests

Change-Id: I91a32f0fb1ec3fbc713adf0e10869797e91172c7
Signed-off-by: Grégoire Seux <g.seux@criteo.com>
2017-06-29 16:26:08 -07:00
James Phillips 4f90d6d3f7 Update CHANGELOG.md 2017-06-29 14:28:54 -07:00
Maciej Stępyra 08c7ec1a59 Missing tools in makefile (#3205) 2017-06-29 12:55:01 +02:00
James Phillips 0417cdd7b9 Update CHANGELOG.md 2017-06-28 20:18:24 -07:00
Preetha Appan edcacf633b fix type in make file 2017-06-28 09:48:00 -05:00
James Phillips d724851848 Update CHANGELOG.md 2017-06-27 18:48:18 -07:00
James Phillips 4d0aa9b82a Bumps Raft library. (#3201)
This picks up the fix for https://github.com/hashicorp/raft/issues/212,
which can cause out-of-date followers to get stuck in a loop trying to
sync because they don't discard old snapshot data.

There's some incidental reordering of the vendor.json since the last
update to that file was merged by hand.
2017-06-27 18:41:00 -07:00
preetapan 793fda1101 Merge pull request #3195 from hashicorp/issue-3018-filehandle-leaks
Fix socket file handle leaks from old blocking queries upon consul reload
2017-06-27 16:47:19 -05:00
Preetha Appan c872a05922 Fix missing formatting directive causing go vet to fail 2017-06-27 16:32:38 -05:00
Preetha Appan 02a5d0a99b Updating CHANGELOG.md 2017-06-27 16:28:48 -05:00
Preetha Appan 26d58865ab Make sure to call cancel on the context 2017-06-27 16:22:57 -05:00
James Phillips 37d60fe11b
Puts the tree back in 0.9.0 dev mode. 2017-06-27 11:18:45 -07:00
James Phillips 4116236769
Bumps download version to 0.8.5. 2017-06-27 10:58:08 -07:00
James Phillips e0bcd8cfab
Release v0.8.5 2017-06-27 10:42:54 -07:00
James Phillips 0fc1c628fa
Puts tree into 0.8.5 release mode. 2017-06-27 09:25:38 -07:00