Commit graph

3663 commits

Author SHA1 Message Date
Sean Chittenden b3192ca410 Rename serverConfigMtx to serverConfigLock
Pointed out by: @slackpad
2016-03-23 16:15:47 -07:00
Sean Chittenden 82458fa9e8 Handle the case where there are no healthy servers
Pointed out by: @slackpad
2016-03-23 16:15:47 -07:00
Sean Chittenden 09d4c6439c Refactor out the management of Consul servers
Move the management of c.consulServers (fka c.consuls) into consul/server_manager.go.

This commit brings in a background task that proactively manages the server list and:

*) reshuffles the list
*) manages the timer out of the RPC() path
*) uses atomics to detect a server has failed

This is a WIP, more work in testing needs to be completed.
2016-03-23 16:15:47 -07:00
Sean Chittenden 6bda2c007c Add a flag to denote that a server is disabled
A server is not normally disabled, but in the event of an RPC error, we want to mark a server as down to allow for fast failover to a different server.  This value must be an int in order to support atomic operations.

Additionally, this is the preliminary work required to bring up a server in a disabled state.  RPC health checks in the future could mark the server as alive, thereby creating an organic "slow start" feature for Consul.
2016-03-23 16:14:59 -07:00
Sean Chittenden 7de85906c1 Rename lastServer to preferredServer
Expanding the domain of lastServer beyond RPC() changes the meaning of this variable.  Rename accordingly to match the intent coming in a subsequent commit: a background thread will be in charge of rotating preferredServer.
2016-03-23 16:14:59 -07:00
Sean Chittenden 12c2fefee3 Introduce GOTEST_FLAGS to conditionally add -v to go test
Trivial change that makes it possible for developers to set an environment variable and change the output of `go test` to be detailed (i.e. `GOTEST_FLAGS=-v`).
2016-03-23 16:14:11 -07:00
Sean Chittenden 2949980a64 Warn if serf events have queued up past 80% of the limit
It is theoretically possible that the number of queued serf events can back up.  If this happens, emit a warning message if there are more than 200 events in queue.

Most notably, this can happen if `c.consulServerLock` is held for an "extended period of time".  The probability of anyone ever seeing this log message is hopefully low to nonexistent, but if it happens, the warning message indicating a large number of serf events fired while a lock was held is likely to be helpful (vs serf mysteriously blocking when attempting to add an event to a channel).
2016-03-23 16:14:11 -07:00
Sean Chittenden 2a0c12460d Commit miss re: consuls variable rename 2016-03-23 16:13:49 -07:00
Sean Chittenden 3ac1bcc799 Remove lastRPCTime
This mechanism isn't going to provide much value in the future.  Preemptively reduce the complexity of future work.
2016-03-23 16:13:49 -07:00
Sean Chittenden 72b7856045 Rename c.consuls to c.consulServers
Prep for breaking out maintenance of consuls into a new goroutine.
2016-03-23 16:10:27 -07:00
Sean Chittenden 74c8da079e Fix whitespace alignment in a comment 2016-03-23 16:00:39 -07:00
Sean Chittenden d1ef4ec7e2 Use rand.Int31n() to get power of two optimization
In cases where i+1 is a power of two, skip one modulo operation.
2016-03-23 16:00:39 -07:00
James Phillips 0f23210628 Fixes JSON in wildcard query example. 2016-03-23 14:33:20 -07:00
James Phillips 51c3d05c90 Merge pull request #1865 from hashicorp/f-upgrade-boltdb
Updates BoltDB to v1.2.0 release.
2016-03-22 08:53:04 -07:00
James Phillips ac14a1ca97 Updates BoltDB to v1.2.0 release. 2016-03-22 08:36:46 -07:00
James Phillips 2c61c1d333 Merge pull request #1861 from hashicorp/b-flaky-test
Widens coordinate update sleeps in unit tests.
2016-03-21 18:24:05 -07:00
James Phillips 4629871f57 Widens coordinate update sleeps in unit tests. 2016-03-21 18:23:11 -07:00
James Phillips d24f2fdc74 Merge pull request #1854 from talonx/master
Added help text for -dev option #1804
2016-03-21 18:03:34 -07:00
James Phillips 36800754fc Merge pull request #1860 from hashicorp/b-flaky-sort
Gets rid of flaky sort check.
2016-03-21 17:31:17 -07:00
James Phillips 92e947dcc3 Gets rid of flaky sort check.
If we get a coordinate then this test will fail, so we only check the
first item in the list, which is deterministic.
2016-03-21 17:30:05 -07:00
James Phillips 511df6da9d Merge pull request #1859 from hashicorp/b-flaky-coord-tests
Increases timeouts for coordinate tests.
2016-03-21 17:10:01 -07:00
James Phillips 265a8d4053 Increases timeouts for coordinate tests.
We take the interval and add the random stagger to it, so 2X is cutting it
too close and the unit tests are often flaky.
2016-03-21 16:44:35 -07:00
James Phillips 7ad0d9789f Merge pull request #1839 from foxel/patch-1
Clarification for advertise_addrs.rpc
2016-03-21 16:14:17 -07:00
Sean Chittenden 5a40caf2a8 Update the docs slightly re: only_passing
Signed-off by: @slackpad
2016-03-21 16:07:56 -07:00
Hrishikesh Barua bcca7efe83 Added help text for -dev option #1804 2016-03-21 17:27:57 +05:30
James Phillips 6c18863e6c Merge pull request #1852 from Sayalic0/patch-1
add inline code segment to enableTagOverride
2016-03-19 23:16:43 -07:00
Sayalic 85e3590a95 add inline code segment to enableTagOverride 2016-03-20 11:09:12 +08:00
James Phillips 13b8ce0adc Merge pull request #1851 from hashicorp/f-ipv6-bind
Allow [::] as a bind address (binds to first public IPv6 address)
2016-03-19 16:16:19 -07:00
James Phillips 18e12aa886 Adds more specific checks for ipv6 addresses. 2016-03-19 16:14:45 -07:00
James Phillips 323a1682ac Merge pull request #1846 from TeaBough/master
Define a TestingT interface in server.go
2016-03-19 08:56:46 -07:00
James Phillips 92040c2349 Merge pull request #1702 from far-blue/ui-configurable-api-url
Configurable consul host address
2016-03-18 21:05:00 -07:00
James Phillips fdc6b76711 Merge pull request #1848 from mssola/unconvert
Used 'unconvert' to remove unneeded conversions
2016-03-18 17:24:36 -07:00
James Phillips 0b5296ef41 Merge pull request #1849 from hashicorp/f-leader-stats
Add leader address to consul stats
2016-03-18 17:22:30 -07:00
James Phillips e4ca18089f Removes leader from members and changes name since it's an address. 2016-03-18 17:07:11 -07:00
Sergey Romanov 11b73bb1a5 #735 add information about leader to consul members 2016-03-18 17:05:40 -07:00
Wim 508bc796a8 Allow [::] as a bind address (binds to first public IPv6 address) 2016-03-18 23:59:44 +01:00
Miquel Sabaté Solà 79d49336a8 Used 'unconvert' to remove unneeded conversions
I've removed unneeded conversions by performing the following commands:

    $ go get -u github.com/mdempsky/unconvert
    $ go list ./... | grep -v vendor | xargs unconvert -apply

Signed-off-by: Miquel Sabaté Solà <msabate@suse.com>
2016-03-18 16:12:56 +01:00
Thibault Vigouroux e0ebd0c913 Define a TestingT interface in server.go 2016-03-18 12:27:59 +01:00
James Phillips 4c3b2edfed Fixes a few bugs in the prepared query doc. 2016-03-17 23:42:27 -07:00
James Phillips 101732a52c Merge pull request #1844 from hashicorp/b-go-linker-flag
Go's -X linker flag now requires only one argument
2016-03-17 11:06:27 -07:00
Sean Chittenden 0f3331cc06 Go's -X linker flag now requires only one argument 2016-03-17 10:51:50 -07:00
James Phillips 0ed56d6606 Adds a note about template query ACLs. 2016-03-17 08:21:58 -07:00
James Phillips b90efa7fa8 Puts tree into ready state for 0.7.0 work (again). 2016-03-16 10:50:49 -07:00
James Phillips 80564787b9 Updates website to version 0.6.4. 2016-03-16 10:36:57 -07:00
James Phillips ce0c2a8d83
Release v0.6.4 2016-03-16 09:42:48 -07:00
James Phillips 727250b4ff Preps for 0.6.4 release. 2016-03-16 09:42:07 -07:00
Andrey Kupreychik d3bce2b1af Clarification for advertise_addrs.rpc
Clarification for advertise_addrs.rpc as it sets the server RPC port (default 8300)
2016-03-16 12:10:54 +05:00
James Phillips f327eb8ab3 Merge pull request #1814 from tylert/env-shebangs
Use more portable shebangs for bash scripts
2016-03-11 08:00:07 -08:00
Tyler Tidman cefc09f9a9 Fix shebangs in new scripts after rebasing 2016-03-11 08:59:08 -05:00
Tyler Tidman 0bb913c661 Use more portable shebangs for bash scripts 2016-03-11 08:56:01 -05:00