Gyu-Ho Lee
f65aee0759
*: replace 'golang.org/x/net/context' with 'context'
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-07 13:39:42 -07:00
Gyu-Ho Lee
15c3c1be28
*: replace 'grpc.ErrClientConnTimeout' with 'context.DeadlineExceeded'
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-05 14:10:43 -07:00
Anthony Romano
59d232adf9
integration: retry remove in TestDecreaseClusterSize
...
Cluster may go through a second leader election if test machine is
overloaded. Retry remove until it passes without error.
Fixes #8225
2017-09-01 12:06:59 -07:00
Hitoshi Mitake
3fefac17b2
integration: clean up resources in error paths of TestV3WatchFromCurrentRevision
...
Current error paths of TestV3WatchFromCurrentRevision don't clean the
used resources including goroutines. Because go's tests are executed
continuously in a single process, the leaked goroutines makes error
logs bloated like the below case:
https://jenkins-etcd-public.prod.coreos.systems/job/etcd-coverage/2143/
This commit lets the error paths clean the resources.
2017-08-28 16:31:36 +09:00
Anthony Romano
ef5e77e361
Merge pull request #8442 from heyitsanthony/oldrev-test
...
integration: check concurrent auth ops don't cause old rev errors
2017-08-25 12:03:32 -07:00
Anthony Romano
dfed636e5a
integration: check concurrent auth ops don't cause old rev errors
2017-08-23 14:29:38 -07:00
Anthony Romano
b9ef49142c
integration: test serializable snapshot STM with old readset revisions
...
Was hanging.
2017-08-22 19:39:22 -07:00
Anthony Romano
35c5dcefc2
*: cockroachdb/cmux -> soheilhy/cmux
...
Has fixes not in fork. Includes SetReadTimeout.
2017-08-22 09:59:59 -07:00
Anthony Romano
6e02779c4f
integration: add corruption test
2017-08-22 09:59:59 -07:00
Anthony Romano
5c611a493b
integration: grpc on etcd peer ports
2017-08-22 09:59:59 -07:00
Anthony Romano
d3f5109215
test: weaken certs
...
The penalty for TLS is non-trivial with race detection enabled.
Weakening the test certs from 4096-bit RSA to 2048-bit gives ~4x faster
runtimes for TestDoubleTLSClusterSizeOf3.
2017-08-21 03:23:47 -07:00
Gyu-Ho Lee
556c1a1fe0
integration,clientv3/integration: test LeaseLeases API
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-14 14:18:57 -07:00
Gyu-Ho Lee
2513e8c9ce
integration: increase numPuts to write more than 1 page
...
For ppc64.
Reference: https://github.com/coreos/bbolt/issues/15#issuecomment-321700834 .
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-10 16:43:41 -07:00
Anthony Romano
c3ae033f25
integration: test Put with PrevKey=true
...
Was missing in proxy.
2017-08-03 21:37:06 -07:00
Gyu-Ho Lee
a3ef719598
integration/fixtures: fix base64 flag, add wildcard.json
...
MacOS base64 uses -D and linux uses -d, while --decode
works on both platforms. And add missing server-ca-csr-wildcard.json.
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-03 15:31:29 -07:00
Anthony Romano
341664f7b6
integration: test txn lease comparisons
2017-07-31 13:00:04 -07:00
Xiang Li
2a348fb8e9
Merge pull request #8263 from fanminshi/hash_by_rev
...
api: hash by rev
2017-07-26 11:22:33 -07:00
fanmin shi
766c2540ae
integration: add TestV3HashKV in v3_grpc_test.go
2017-07-26 09:48:24 -07:00
Gyu-Ho Lee
9b6799a5b6
integration: increase dial timeout in testTLSReload
2017-07-26 09:37:51 -07:00
Anthony Romano
52dd13fa35
fixtures: generate wildcard DNS SAN cert
...
DNS: *.etcd.local
2017-07-21 16:43:26 -07:00
Gyu-Ho Lee
34fd848a4f
integration: test embed.Etcd.Close with watch
...
Ensure 'Close' returns in time when there are open
connections (watch streams).
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-14 15:32:08 -07:00
Anthony Romano
e29db923bc
*: move v2http handlers without /v2 prefix to etcdhttp
...
Lets --enable-v2=false configurations provide /metrics, /health, etc.
Fixes #8167
2017-07-07 18:35:57 -07:00
Gyu-Ho Lee
a57405a958
Merge pull request #8153 from gyuho/leadership-transfer
...
*: expose Leadership Transfer API to clients
2017-07-06 13:00:08 -07:00
Hitoshi Mitake
6ea5676db4
Merge pull request #8145 from mitake/non-authorized-rpcs
...
integration: add a test case for non authorized RPCs
2017-06-24 11:51:47 +09:00
Gyu-Ho Lee
581a83dfd9
clientv3/*: add 'MoveLeader' method to 'Maintenance'
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-23 13:07:17 -07:00
Gyu-Ho Lee
c5532dd2a2
integration: test 'MoveLeader' service
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-23 12:53:22 -07:00
Anthony Romano
ac061671d5
Revert "integration: remove lease exist checking on randomized expiry"
...
This reverts commit 95bc33f37f
. The new
lease extension algorithm should pass this test.
2017-06-22 11:25:45 -07:00
Anthony Romano
310a09691f
Merge pull request #8150 from heyitsanthony/update-db-size-defrag
...
mvcc: use GaugeFunc metric to load db size when requested
2017-06-22 09:38:00 -07:00
Anthony Romano
4e6c77185b
integration: test mvcc db size metric is updated following defrag
2017-06-21 22:59:48 -07:00
Hitoshi Mitake
6fe2249bcd
integration: add a test case for non authorized RPCs
...
This commit add a new test case which ensures that non authorized RPCs
failed with ErrUserEmpty. The case can happen in a schedule like
below:
1. create a cluster
2. create clients
3. enable authentication of the cluster
4. the clients issue RPCs
Fix https://github.com/coreos/etcd/issues/7770
2017-06-22 11:35:37 +09:00
Anthony Romano
0dd4c2ac69
integration: test grpc nested txns
2017-06-21 14:33:15 -07:00
Gyu-Ho Lee
1df8b90d67
Merge pull request #8121 from gyuho/health-check-service
...
*: add basic health check service
2017-06-20 13:07:52 -07:00
Gyu-Ho Lee
8ce2c79197
integration: add 'HealthClient.Check' test
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-20 13:02:11 -07:00
Anthony Romano
798b14979c
fixtures: add gencerts.sh, generate CRL
2017-06-19 15:23:41 -07:00
Anthony Romano
45fbac5544
Merge pull request #8025 from heyitsanthony/txn-cmp-range
...
api: txn comparisons on ranges
2017-06-18 11:11:43 -07:00
Anthony Romano
fafb054624
integration: test txn range comparisons
2017-06-16 12:13:27 -07:00
Anthony Romano
a825709940
integration: test mvcc db size metric is set on restore
2017-06-16 11:27:07 -07:00
Anthony Romano
e962b0c849
Merge pull request #7909 from heyitsanthony/unptr-cfg
...
etcdserver, embed, integration: don't use pointer for ServerConfig
2017-06-15 20:47:30 -07:00
Gyu-Ho Lee
5e059fd8dc
*: use metadata Incoming/OutgoingContext
...
Fix https://github.com/coreos/etcd/issues/7888 .
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-15 16:41:23 -07:00
Anthony Romano
dcf52bbfac
etcdserver, embed, integration: don't use pointer for ServerConfig
...
ServerConfig is owned by etdcserver and unshared, so don't pass or store by
pointer. Also removes duplicated field 'snapCount'.
2017-06-15 13:02:13 -07:00
Gyu-Ho Lee
95bc33f37f
integration: remove lease exist checking on randomized expiry
...
Lease with TTL 5 should be renewed with randomization,
thus it's still possible to exist after 3 seconds.
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-15 12:57:55 -07:00
Anthony Romano
3a6180d490
Merge pull request #8072 from heyitsanthony/auth-proxy-test
...
integration: test auth layer in grpc proxy tests
2017-06-09 11:32:27 -07:00
Anthony Romano
798119ed6f
integration: test auth layer in grpcproxy tests
2017-06-09 09:36:16 -07:00
Anthony Romano
ad22aaa354
integration: test txn comparison and concurrent put ordering
2017-06-09 09:20:38 -07:00
Hitoshi Mitake
7b68318284
integration: add test cases for lease revoking with auth
2017-06-07 17:46:14 -07:00
Anthony Romano
887db5a3db
*: fix go tool vet -all -shadow errors
2017-06-03 21:32:36 -07:00
Anthony Romano
166ae10ca3
integration: use unixs:// if client port configured for tls
2017-05-31 15:51:48 -07:00
fanmin shi
68a72c6b6e
v3rpc: change grpc max recv size as needed.
2017-05-25 11:01:51 -07:00
fanmin shi
9e7740011b
etcdserver: add --max-request-bytes flag
2017-05-25 11:01:38 -07:00
fanmin shi
e9f464debc
integration: creation of cluster now takes maxTxnOps
2017-05-24 14:48:44 -07:00
fanmin shi
ae7ddfb483
etcdserver: add --max-txn-ops flag
...
--max-txn-ops allows users to define the maximum transaction operations
for each txn request. it defaults at 128.
Fixes #7826
2017-05-24 10:32:32 -07:00
Gyu-Ho Lee
29bbcdd110
integration: bump up 'TestV3LeaseRequireLeader' timeout to 5-sec
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-18 16:44:57 -07:00
Anthony Romano
6ce9aed8c5
Merge pull request #7881 from heyitsanthony/testctl-logging
...
e2e: more debugging output for lock and elect tests
2017-05-12 12:01:08 -07:00
Anthony Romano
5b4677b7d7
integration: reset default logging level in TestRestartRemoved
2017-05-12 10:22:29 -07:00
Anthony Romano
00da3ca725
integration: add lock and election services to proxy tests
2017-05-10 13:06:27 -07:00
Anthony Romano
2e32d2142d
Merge pull request #7869 from heyitsanthony/fix-lease-require-leader-test
...
clientv3/integration: drain keepalives before waiting for leader loss
2017-05-04 08:29:16 -07:00
Gyu-Ho Lee
4edbae4a91
integration/fixtures-expired: do not force 'rm'
...
To make gencerts.sh script safer.
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-03 18:45:44 -07:00
Anthony Romano
9fee35b02d
Merge pull request #7842 from heyitsanthony/fix-switch-race
...
clientv3: don't race on upc/downc/switch endpoints in balancer
2017-05-03 13:48:00 -07:00
Anthony Romano
8f40517adb
integration: close proxy's lease client
2017-05-03 13:22:24 -07:00
Gyu-Ho Lee
85fa594265
integration: clean up TLS reload tests, fix no-file while renaming
...
Fix https://github.com/coreos/etcd/issues/7865 .
It is also possible to have mis-matched key file
while renaming directories.
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-03 11:59:09 -07:00
Anthony Romano
24e85b2454
Merge pull request #7852 from heyitsanthony/revert-lease-err-ka
...
Revert "Merge pull request #7732 from heyitsanthony/lease-err-ka"
2017-05-03 11:03:17 -07:00
Anthony Romano
61abf25859
integration: close accepted connection on stopc path
...
Connection pausing added another exit condition in the listener
path, causing the bridge to leak connections instead of closing
them when signalled to close. Also adds some additional Close
paranoia.
Fixes #7823
2017-05-02 16:46:43 -07:00
Gyu-Ho Lee
01b6cdf13d
integration: ensure revoke completes before TimeToLive
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-02 12:56:26 -07:00
Anthony Romano
6dd8fb6f24
Revert "Merge pull request #7732 from heyitsanthony/lease-err-ka"
...
This reverts commit fbbc4a4979
, reversing
changes made to f254e38385
.
Fixes #7851
2017-05-02 09:36:16 -07:00
Gyu-Ho Lee
cfeab9324e
integration: match more TLS errors for wrong certs
...
Fix https://github.com/coreos/etcd/issues/7835 .
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-28 10:03:29 -07:00
Gyu-Ho Lee
22943e7e06
integration: test TLS reload
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-27 13:32:09 -07:00
Anthony Romano
c309d745a6
Merge pull request #7819 from heyitsanthony/fix-elect-compact
...
concurrency: use current revisions for election
2017-04-27 11:01:44 -07:00
Gyu-Ho Lee
7cb860a31b
integration/fixtures: add expired certs
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-26 12:22:54 -07:00
Anthony Romano
6486be673b
integration: test Observe can read leaders set prior to compaction
2017-04-25 20:03:49 -07:00
Anthony Romano
2fd6df922a
integration: close proxy's lease client
2017-04-24 23:49:45 -07:00
Anthony Romano
e6a789d541
integration: permit dropping intermediate leader values on observe
...
Weaken TestV3ElectionObserve so it only checks that it observes a strictly
monotonically ascending leader transition sequence following the first
observed leader. First, the Observe will issue the leader channel before
getting a response for its first get; the election revision is only bound
after returning the channel. So, Observe can't be expected to always
return the leader at the time it was started. Second, Observe fetches
the current leader based on its create revision, but begins watching on its
ModRevision; this is important so that elections still work in case the
leader issues proclamations following a compaction that exceeds its
creation revision. So, Observe can't be expected to return the entire
proclamation sequence for a single leader.
Fixes #7749
2017-04-22 11:26:11 -07:00
Anthony Romano
fe1ce3a2f0
integration: add pause/unpause to client bridge
...
Resetting connections sometimes isn't enough; need to stop/resume
accepting connections for some tests while keeping the member up.
2017-04-21 20:22:51 -07:00
Anthony Romano
14d6ed9e5f
*: clear redundant return statement warnings (S1027)
2017-04-21 14:01:00 -07:00
Gyu-Ho Lee
99a2d6c4b1
integration: use 'time.Until' in Go 1.8
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 20:08:27 -07:00
Gyu-Ho Lee
e771c6042b
Merge pull request #7743 from gyuho/shutdown-grpc-server
...
*: use gRPC server GracefulStop
2017-04-17 17:12:52 -07:00
Gyu-Ho Lee
253e5a90bb
integration: test auth API response header revision
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 14:26:30 -07:00
Gyu-Ho Lee
472a536052
integration: test 'inflight' range requests
...
- Test https://github.com/coreos/etcd/issues/7322 .
- Remove test case added in https://github.com/coreos/etcd/pull/6662 .
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 14:15:36 -07:00
Anthony Romano
712f6cb0e1
integration: test requests with valid auth token but disabled auth
...
etcd was crashing since auth was assuming a token implies auth is enabled.
2017-04-12 13:17:33 -07:00
Anthony Romano
bf047ed9d5
integration: v3 election rpc tests
2017-04-07 16:36:38 -07:00
Gyu-Ho Lee
1e3274dfa2
integration: use cluster adapter in tests
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-04 10:08:51 -07:00
Anthony Romano
24e4c94d98
Merge pull request #7640 from heyitsanthony/etcdserver-ctx
...
etcdserver: ctx-ize server initiated requests
2017-04-03 09:07:28 -07:00
Anthony Romano
f5f4791023
integration: test cluster terminates quickly
2017-03-31 19:19:33 -07:00
Anthony Romano
b55ea6a70b
integration: test require leader for a lease stream
2017-03-30 20:18:33 -07:00
Gyu-Ho Lee
c90a4b96d1
integration: use maintenance API adapter in tests
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-28 14:12:47 -07:00
Anthony Romano
b9cfa4cef9
integration: add serialized range to TestV3CompactCurrentRev
...
To catch compaction bugs in the proxy key cache.
2017-03-24 13:13:38 -07:00
Gyu-Ho Lee
b81cb999fb
integration: retry TestNetworkPartition5MembersLeaderInMajority
...
Fix https://github.com/coreos/etcd/issues/7587 .
Retry for possible leader election in majority.
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-23 16:30:38 -07:00
Gyu-Ho Lee
ed68bf89ff
integration: test inflight range requests while defragmenting
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-23 09:48:04 -07:00
Anthony Romano
f35d7d9608
integration: test namespacing on proxy layer
...
Hardcode a namespace over the testing grpcproxy.
2017-03-22 16:45:38 -07:00
Anthony Romano
9f34d3493d
integration: wait on leader before progress check in TestRestartMember
...
In rare cases, the last member may not have the leader by the time the
final cluster progress check tries to open a watch, causing a timeout.
2017-03-22 12:48:31 -07:00
Gyu-Ho Lee
2d5f890091
integration: ensure 'StopNotify' on publish error
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-21 10:29:00 -07:00
fanmin shi
f292a4c953
embed: don't return error when closing on embed etcd
...
FIXES #7019
2017-03-17 13:41:05 -07:00
Anthony Romano
2f1542c06d
*: use filepath.Join for files
2017-03-16 07:46:06 -07:00
fanmin shi
ace3a217b0
Merge pull request #7483 from fanminshi/add_tests_to_mutex
...
integration: add TestMutexWaitsOnCurrentHolder test
2017-03-14 13:01:47 -07:00
fanmin shi
276039e835
integration: add TestMutexWaitsOnCurrentHolder test
...
TestMutexWaitsOnCurrentHolder ensures a series of waiters
obtain lock only after the previous lock requests are gone.
2017-03-14 11:00:07 -07:00
Anthony Romano
300323fa50
integration: test grpc lock service
2017-03-13 15:23:26 -07:00
Anthony Romano
b025cdd097
adapter, integration: split out grpc adapters from grpcproxy package
...
Break cyclic dependency:
clientv3/naming <-> integration <-> v3client <-> grpcproxy <-> clientv3/naming
2017-03-13 15:23:26 -07:00
Gyu-Ho Lee
beb58c434c
*: fix minor typos
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-08 16:21:52 -08:00
Hitoshi Mitake
f8a290e7ca
*: support jwt token in v3 auth API
...
This commit adds jwt token support in v3 auth API.
Remaining major ToDos:
- Currently token type isn't hidden from etcdserver. In the near
future the information should be completely invisible from
etcdserver package.
- Configurable expiration of token. Currently tokens can be valid
until keys are changed.
How to use:
1. generate keys for signing and verfying jwt tokens:
$ openssl genrsa -out app.rsa 1024
$ openssl rsa -in app.rsa -pubout > app.rsa.pub
2. add command line options to etcd like below:
--auth-token-type jwt \
--auth-jwt-pub-key app.rsa.pub --auth-jwt-priv-key app.rsa \
--auth-jwt-sign-method RS512
3. launch etcd cluster
Below is a performance comparison of serializable read w/ and w/o jwt
token. Every (3) etcd node is executed on a single machine. Signing
method is RS512 and key length is 1024 bit. As the results show, jwt
based token introduces a performance overhead but it would be
acceptable for a case that requires authentication.
w/o jwt token auth (no auth):
Summary:
Total: 1.6172 secs.
Slowest: 0.0125 secs.
Fastest: 0.0001 secs.
Average: 0.0002 secs.
Stddev: 0.0004 secs.
Requests/sec: 6183.5877
Response time histogram:
0.000 [1] |
0.001 [9982] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.003 [1] |
0.004 [1] |
0.005 [0] |
0.006 [0] |
0.008 [6] |
0.009 [0] |
0.010 [1] |
0.011 [5] |
0.013 [3] |
Latency distribution:
10% in 0.0001 secs.
25% in 0.0001 secs.
50% in 0.0001 secs.
75% in 0.0001 secs.
90% in 0.0002 secs.
95% in 0.0002 secs.
99% in 0.0003 secs.
w/ jwt token auth:
Summary:
Total: 2.5364 secs.
Slowest: 0.0182 secs.
Fastest: 0.0002 secs.
Average: 0.0003 secs.
Stddev: 0.0005 secs.
Requests/sec: 3942.5185
Response time histogram:
0.000 [1] |
0.002 [9975] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.004 [0] |
0.006 [1] |
0.007 [11] |
0.009 [2] |
0.011 [4] |
0.013 [5] |
0.015 [0] |
0.016 [0] |
0.018 [1] |
Latency distribution:
10% in 0.0002 secs.
25% in 0.0002 secs.
50% in 0.0002 secs.
75% in 0.0002 secs.
90% in 0.0003 secs.
95% in 0.0003 secs.
99% in 0.0004 secs.
2017-03-06 19:46:03 -08:00
Gyu-Ho Lee
3d75395875
*: remove never-unused vars, minor lint fix
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-06 14:59:12 -08:00
Anthony Romano
1753623f87
integration: don't set v3 capability since now default
2017-03-02 14:02:09 -08:00