Commit Graph

1654 Commits

Author SHA1 Message Date
Atin Malaviya 87e9d855fd Added more tests 2014-12-10 16:43:15 -05:00
Atin Malaviya 624c465e2b Added more tests. Also added return of 404 if the session id to renew is not found 2014-12-10 10:02:23 -05:00
Atin Malaviya 4732c36d88 Consul Session TTLs
The design of the session TTLs is based on the Google Chubby approach
(http://research.google.com/archive/chubby-osdi06.pdf). The Session
struct has an additional TTL field now. This attaches an implicit
heartbeat based failure detector. Tracking of heartbeats is done by
the current leader and not persisted via the Raft log. The implication
of this is during a leader failover, we do not retain the last
heartbeat times.

Similar to Chubby, the TTL represents a lower-bound. Consul promises
not to terminate a session before the TTL has expired, but is allowed
to extend the expiration past it. This enables us to reset the TTL on
a leader failover. The TTL is also extended when the client does a
heartbeat. Like Chubby, this means a TTL is extended on creation,
heartbeat or failover.

Additionally, because we must account for time requests are in transit
and the relative rates of clocks on the clients and servers, Consul
will take the conservative approach of internally multiplying the TTL
by 2x. This helps to compensate for network latency and clock skew
without violating the contract.

Reference: https://docs.google.com/document/d/1Y5-pahLkUaA7Kz4SBU_mehKiyt9yaaUGcBTMZR7lToY/edit?usp=sharing
2014-12-07 12:38:22 -05:00
Armon Dadgar 3d3c48bd50 Merge pull request #514 from vlajos/typofixes-vlajos-20141204
typofixes - https://github.com/vlajos/misspell_fixer
2014-12-04 15:41:16 -08:00
Veres Lajos 3b1068387a typofixes - https://github.com/vlajos/misspell_fixer 2014-12-04 23:25:06 +00:00
Ryan Uber 1e7772d570 Merge pull request #511 from catsby/exec-doc-update
Small doc update for exec command
2014-12-04 00:40:39 -08:00
Clint Shryock 042a523c14 Small doc update for exec command
the documentation for -tag says it must be used with -service, but
example used is -server, which doesn't work.

This changes -server to -service.
2014-12-03 22:46:26 -06:00
Armon Dadgar 5887242db2 agent: Handle service ACLs when doing anti-entropy 2014-12-01 11:43:01 -08:00
Armon Dadgar 53de386a08 Merge pull request #506 from hashicorp/f-service-acl
Service ACL support
2014-11-30 21:11:36 -07:00
Armon Dadgar 4861e4d9e1 consul: Check that ACL also allows registration 2014-11-30 21:10:42 -07:00
Armon Dadgar cafba93869 consul: Enforce service registration ACLs 2014-11-30 21:05:15 -07:00
Armon Dadgar 8ff08819c8 acl: Expose service policy checks 2014-11-30 20:33:46 -07:00
Armon Dadgar 3695f65292 acl: Support for service policies 2014-11-30 20:18:16 -07:00
Armon Dadgar 4c410cf1f9 website: Update ACL docs 2014-11-30 20:12:44 -07:00
Ryan Uber 81d4e5cfd4 agent: fixup all check definitions from json config 2014-11-30 18:27:37 -08:00
Ryan Uber dd4fadfc9e agent: persist CheckType with health checks 2014-11-29 12:54:37 -08:00
Ryan Uber b7587cac42 agent: allow config reload to modify checks/services persistence
This change consolidates loading services and checks from both config
and persisted state into methods on the agent. As part of this, we
introduce optional persistence when calling RemoveCheck/RemoveService.

Fixes a bug where config reloads would kill persisted services/checks.
Also fixes an edge case:

1. A service or check is registered via the HTTP API
2. A new service or check definition with the same ID is added to config
3. Config is reloaded

The desired behavior (which this implements) is:

1. All services and checks deregistered in memory
2. All services and checks in config are registered first
3. All persisted checks are restored using the same logic as the agent
   start sequence, which prioritizes config over persisted, and removes
   any persistence files if new config counterparts are present.
2014-11-26 12:46:42 -08:00
Armon Dadgar ab92a900d6 Merge pull request #499 from alouche/fix_potential_race_condition_shutdown
Fix potential race condition on shutdown (pool.reap/server.handleConsulConn)
2014-11-26 11:39:33 -08:00
Seth Vargo 281c7ab116 Merge pull request #500 from d3xf/pr-minor-doc-fixes
Minor documentation fixes
2014-11-26 09:08:45 -05:00
Dan Frost 284814a515 docs: agent/watches: minor fixes 2014-11-26 13:48:33 +00:00
Dan Frost 1b94c804f3 docs: agent/checks: minor fixes 2014-11-26 13:42:53 +00:00
Dan Frost 65ffbed02e docs: agent/dns: minor fixes 2014-11-26 13:33:55 +00:00
Dan Frost 3bbb226e2b docs: agent/basics: minor fixes 2014-11-26 13:15:41 +00:00
Dan Frost 84ac7fee60 docs: internals/security: minor fixes 2014-11-26 13:05:33 +00:00
Dan Frost 738ade9df8 docs: internals/acl: minor fixes 2014-11-26 12:57:15 +00:00
Dan Frost 169222eb5b docs: internals/sessions: minor fixes 2014-11-26 12:49:53 +00:00
Dan Frost e524686d6f docs: internals/architecture: minor fixes 2014-11-26 12:31:38 +00:00
Dan Frost f65f889b0a docs: compatibility: minor fixes 2014-11-26 12:09:36 +00:00
Dan Frost e1f8be11a3 docs: intro/kv: minor fixes 2014-11-26 12:00:49 +00:00
Dan Frost f1d6eef5be docs: intro/checks: minor fixes 2014-11-26 11:55:42 +00:00
Dan Frost bab6fc90fa docs: intro/join: minor fixes 2014-11-26 11:49:39 +00:00
Dan Frost 3ed05e2a43 docs: intro/services: minor fixes 2014-11-26 11:42:02 +00:00
Dan Frost f863a24e37 docs: intro/agent: minor fixes 2014-11-26 11:37:28 +00:00
Ali Abbas d1b2e41680 * Fix race condition on read/write of shutdown bool variable of server and connection pool.
* In connection pool, there is no guarantee that .reap() cannot execute the same time as .Shutdown() is called. It also did not benefit to eval shutdown when a select is run on the shutdown channel.
* In server, same principle applies to handleConsulConn. Since we also have a shutdown channel, it makes more to use this than to loop on a bool variable.
2014-11-26 10:39:25 +01:00
Ryan Uber f126bb7381 website: Improve docs for reloading config. Fixes #407 2014-11-25 19:03:14 -08:00
Ryan Uber 9c92ea5bcb Merge pull request #498 from alouche/fix_sprintf_unreachable_code
Fix sprintf formatting and cleanup unreachable code
2014-11-25 11:18:16 -08:00
Ali Abbas a4656f1ecf fix Sprintf formatting 2014-11-25 20:06:33 +01:00
Ali Abbas e395420af6 cleanup unreachable code 2014-11-25 19:54:30 +01:00
Jack Pearkes d72a3dad36 website: load fonts over https 2014-11-25 11:02:49 -05:00
Ryan Uber 9f9087badb agent: prefer config over persisted services/checks (#497) 2014-11-24 19:40:53 -08:00
Armon Dadgar f74d3dbd92 Merge pull request #497 from hashicorp/f-persist
Persist locally registered services and checks
2014-11-24 11:14:08 -08:00
Armon Dadgar 50e21b071c agent: Adding TODO for future optimization 2014-11-24 11:09:04 -08:00
Armon Dadgar 31083ca1cd Merge pull request #475 from sequenceiq/reverse-lookup
feature: handle PTR requests to implement dns reverse lookup
2014-11-24 11:08:16 -08:00
Armon Dadgar 603171df09 Only override version pre-release if blank 2014-11-24 11:05:11 -08:00
Armon Dadgar 7994484dc7 Merge pull request #494 from epankala/version
Update to 'consul version' behaviour
2014-11-24 11:03:00 -08:00
Ryan Uber 2ebe85414f agent: pass error through when writing state files 2014-11-24 01:58:39 -08:00
Ryan Uber 79ba25b94d agent: default restored checks to critical status 2014-11-24 01:15:18 -08:00
Ryan Uber 46a5272a8a agent: first pass at local service and check persistence 2014-11-24 01:10:27 -08:00
Armon Dadgar 8c7dfc14c0 Merge pull request #492 from sosedoff/comment-fix
Comment fix
2014-11-23 23:05:07 -08:00
Janne Paenkaelae 3bb03f4c86 Update to 'consul version' behaviour
After e6b6f18172 if consul was built
with just running "go build" the GitDescribe would be empty and consul
version would be empty.

This change alters the behaviour so that if consul is build without
proper ldflags the version will be postfixed with "dev" prerelease to
indicate that it is self compiled in a wrong way.

Should someone have a bug in such a binary at least devs should easily
see from the version number that binary has not been created by
recommended means.
2014-11-23 15:42:08 +00:00