3781 Commits

Author SHA1 Message Date
Sean Chittenden
e1e441fdee Improve the use of constants across DNS tests 2016-03-29 23:08:40 -07:00
Sean Chittenden
fcee9779ae Use industry jargon re: DNS round-robin
s/randomized DNS round-robin/round-robin DNS/
2016-03-29 23:07:42 -07:00
Sean Chittenden
c2d4354563 Use a non-default config value 2016-03-29 23:06:31 -07:00
Sean Chittenden
1dd4234683 Test missing config inputs
Alpha sort where appropriate to make it easier to keep in sync in the future.
2016-03-29 23:06:17 -07:00
Sean Chittenden
69696a9c1b Correctly detect that an answer has been truncated 2016-03-29 19:52:31 -07:00
Sean Chittenden
88c42f4056 Move lib's tests to lib_test
This suite of tests is only testing the exported functions
2016-03-29 19:51:37 -07:00
Sean Chittenden
efe940e7c4 Remove dead and incorrect code
This functionality is handled further upstream in `trimUDPAnswers()`
2016-03-29 19:38:26 -07:00
Sean Chittenden
d4f7f143f2 Whitespace, indent markdown correctly 2016-03-29 19:27:36 -07:00
Sean Chittenden
c5c8daf07a Trim UDP responses per configuration 2016-03-29 19:27:21 -07:00
Sean Chittenden
4b5674bee3 Merge branch 'b-dns-single-record' of ssh://github.com/hashicorp/consul into b-dns-single-record
# Conflicts:
#	command/agent/dns.go
2016-03-29 19:24:53 -07:00
Sean Chittenden
9fb64ab114 Allow adjusting the number of DNS records in a response...
Based on work done by @fusiondog in #1583, extend the concept to use an integer instead of a boolean.

Fixes: #1583 && #1481
2016-03-29 19:23:56 -07:00
Patrick Feliciano
74623c372a Adding singleton option to DNS for getaddrinfo bug. 2016-03-29 19:23:07 -07:00
Sean Chittenden
cff05be5b4 Merge pull request #1894 from hashicorp/f-rename-server-manager
F rename server manager
2016-03-29 17:44:26 -07:00
Sean Chittenden
7cdc056ca5 Rename server_details package to agent 2016-03-29 17:39:19 -07:00
Sean Chittenden
80f9f54bb3 Add a quick package doc for the servers package 2016-03-29 16:22:53 -07:00
Sean Chittenden
5501feecbe Rename serverConfig to serverList
serverList is a vastly more accurate name.  Chase accordingly.  No functional change other than types and APIs.
2016-03-29 16:17:16 -07:00
Sean Chittenden
6185f931d8 Gratuitous rename 1/2
Reduce cognative load and perform an overdue rename.  No functional change.

Rename the `server_manager` package to `servers`.  Rename the `ServerManager` package to `Manager`.  In `client`, rename `serverMgr` to `servers`.
2016-03-29 16:12:00 -07:00
Sean Chittenden
5cffcd56c3 Merge pull request #1880 from hashicorp/f-pretest-server
Pre-connect new rebalanced server
2016-03-29 11:12:59 -07:00
Sean Chittenden
3666c87d2f Remove two unused constants 2016-03-29 11:11:41 -07:00
Sean Chittenden
299d058d54 Remove useless comment residual from decomposing functions 2016-03-29 10:53:00 -07:00
Sean Chittenden
ec25ad84a6 EDYSLEXICMOMENT 2016-03-29 10:50:10 -07:00
Sean Chittenden
b684b15d94 Refactor out recocileServerList anon function
Add testing to reconcileServerList and test various server sizes.

Test that a percentage of nodes fail their Ping (50% in testing atm)
2016-03-29 02:45:38 -07:00
Sean Chittenden
c56f039884 Teach fauxConnPool to fail a pct of the time
50% failure rate seems legit as a starting point w/ 100 servers.
2016-03-28 14:53:29 -07:00
Sean Chittenden
43aed6376a Call NotifyFailedServers to rotate the server list 2016-03-28 14:12:41 -07:00
Sean Chittenden
6648d31579 Add log line re: server manager backing off and sleeping
This is useful in situations where the RPC rotate duration is greater than 1µs.  WTB exponential backoff of logging so we don't spam forever.
2016-03-28 14:04:04 -07:00
Sean Chittenden
544a263a62 Remove old debugging lines of questionable future value 2016-03-28 14:02:53 -07:00
Sean Chittenden
e5b5078415 Shuffle in place
Don't create a copy and save the copy, not necessary any more.
2016-03-28 14:02:27 -07:00
Sean Chittenden
a81eb95acc Nuke unnecessary comment
See above function comments for details
2016-03-28 13:57:36 -07:00
Sean Chittenden
e237904d80 Move FIXME comment to the right call site 2016-03-28 13:49:55 -07:00
Sean Chittenden
3dfd9e02b7 Rename the ConnPoolPinger interface to Pinger 2016-03-28 13:46:01 -07:00
Sean Chittenden
c9afc16d96 Return error from PingConsulServer
In order to report why a Ping failed, change the signature of PingConsulServers to include an error message.
2016-03-28 13:38:58 -07:00
Sean Chittenden
28dc6451d9 Change the definition of the ServerDetails struct key
Use only the serf Name for now.  Leaving the plumbing for now.
2016-03-28 12:53:19 -07:00
Sean Chittenden
62c38ecb39 Correct the comment to match reality 2016-03-28 12:32:30 -07:00
Sean Chittenden
8ac35d84f0 Rename serverCfg to sc for consistency 2016-03-28 12:06:26 -07:00
Sean Chittenden
664ab238fd Add a quick length check
Verify that AddServer behaved as expected
2016-03-28 11:38:12 -07:00
Sean Chittenden
4589c36308 Switch the order of ServerDetails.String()
It's more natrual to have the network first.  I think I flipped the order accidentally.
2016-03-28 11:37:25 -07:00
Sean Chittenden
e8a2e56370 Move rebalance log statement from INFO to DEBUG 2016-03-27 01:32:04 -07:00
Sean Chittenden
060dd49a95 Chase the API bump re: refreshServerRebalanceTimer
If it works in prod, why shouldn't it work in the tests?
2016-03-27 00:04:52 -07:00
Sean Chittenden
3d00208351 Move initialization of the rebalanceTimer to New() 2016-03-27 00:03:48 -07:00
Sean Chittenden
5652c60971 Add a test for ConnPool.PingConsulServer
Spin up 5x servers, join and ping each server
2016-03-26 23:52:06 -07:00
Sean Chittenden
efc1113406 Expose ServerManager.ResetRebalanceTimer
Move the rebalance timer from ServerManager.Start's stack to struct ServerManager.  This makes it possible to shuffle during tests without actually waiting >120s.
2016-03-26 23:41:01 -07:00
Sean Chittenden
d275cac1a3 Logging improvements
Comment out noisly loggers for the time being.

Improve the final logging statement to be useful and hint what the next active server for the client is going to be.
2016-03-26 22:41:08 -07:00
Sean Chittenden
35ff2eb71a Standardize the log message based on the package
This log statement used to belong in the consul package but has since moved to the server manager package.
2016-03-26 22:29:00 -07:00
Sean Chittenden
e327630523 Reduce the error level from Fatal when unit testing 2016-03-26 22:07:09 -07:00
Sean Chittenden
92c2e8e668 Start server rebalance task after init'ing Serf
Now that there is no longer an event loop driven directly by Serf, start the ServerManager task after Serf has been setup.  When testing and adjusting timers and timeouts to unreasonably low values, it's possible to tickle a race condition where Serf's NumNodes() would fail because Serf had not been initialized.
2016-03-26 22:04:41 -07:00
Sean Chittenden
ee95c55d88 Catch up to a few renames 2016-03-26 19:32:11 -07:00
Sean Chittenden
dc291e4027 Use empty string for addr in ServerDetails.String() 2016-03-26 19:30:04 -07:00
Sean Chittenden
970938c2dd Guard against a nil ServerDetails.Addr
It's not clear how or why this would ever be nil, but some of the unit tests produce a nil addr.  Be defensive.
2016-03-26 19:29:31 -07:00
Sean Chittenden
ca5950a538 Proactively ping server before rotation
Before shuffling the server list, proactively ping the next server in the list to establish the connection and verify the remote endpoint is healthy.
2016-03-26 19:28:13 -07:00
Sean Chittenden
18270bbd04 Factor out the shuffle server 2016-03-26 19:19:04 -07:00