91335d01bb
proxy/grpcproxy: wait until register before Serve
...
It was fatal-ing with:
grpclog.Fatalf("grpc: Server.RegisterService after Server.Serve for %q", sd.ServiceName)
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-11-16 09:34:11 -08:00
d62e39d5ca
*: deprecate "metadata.NewContext"
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-11-16 09:05:06 -08:00
01c4f35b30
grpcproxy: respect KeysOnly flag
...
Fixes #8478
2017-09-14 04:41:58 +09:00
be8f102efb
grpcproxy: forward PrevKv flag in Put
2017-08-04 07:32:17 -07:00
19fe4b0cac
grpcproxy: return nil on receiving snapshot EOF
...
Gets "code = OutOfRange desc = EOF" errors otherwise.
2017-07-19 08:33:44 -07:00
33c375dc44
*: fill out blank package godocs
...
Mostly one-liner short descriptions, but also includes some typo fixes
and some examples.
2017-05-18 09:41:13 -07:00
713e006bc6
adpater: adapters for lock and election services
2017-05-10 12:51:05 -07:00
fd01db9e60
grpcproxy, etcdmain: add lock and election services to proxy
2017-05-10 12:19:09 -07:00
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
b5384ac1c0
grpcproxy: use new lease interface
2017-04-24 23:49:44 -07:00
7adf4d7c94
grpcproxy/adapter: add Cluster API support
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-04-04 08:13:30 -07:00
5c642ae314
grpcproxy/adapter: add maintenance API support
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-03-28 09:09:06 -07:00
caa73c176f
proxy/grpcproxy: add chanStream helper
...
Prelimiary work for maintenance API in adapter
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-03-27 11:24:02 -07:00
b2a465e354
grpcproxy/cache: only check compaction revision for historical revisions
...
Since the current revision is 0, it'll always be less than the compaction
revision. If the proxy sees a compaction, it would always reject the
current revision requests since it's less than the compaction revision.
Instead, check if the revision is historical before trying to reject on
compaction revision.
Fixes #7599
2017-03-24 13:20:46 -07:00
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
f862b47e92
grpcproxy: configure register to Cluster API
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com >
2017-03-09 02:40:13 -08:00
28e9ba365a
grpcproxy: return closing error when stream is canceled from conn close
...
Fixes #6630
2017-03-01 16:46:13 -08:00
72a531e8b2
grpcproxy: add 'register' address
...
For https://github.com/coreos/etcd/issues/6902 .
2017-02-22 16:47:48 -08:00
29a6fd65ad
grpcproxy: only return ctx error in chan stream if recvc is empty
...
Since select{} won't prioritize, ctx.Done() can sometimes override
a pending message on recvc. Loop if recvc has messages instead.
Fixes #7340
2017-02-21 10:53:58 -08:00
ba52bd07ba
grpcproxy: add lease coalescing support
2017-02-16 11:50:50 -08:00
05b82f2022
grpcproxy: refactor chan stream out of watch_client_adapter
2017-02-16 11:41:21 -08:00
80de75431e
grpcproxy: support forcing leader as available
...
Leadership timeout can sometimes take too long, such as in test cases.
However, it is possible to infer a leader is available based on RPCs
that must go through consensus. Therefore, have a way to update the
leadership status off the watch path.
2017-02-15 16:49:41 -08:00
36f5b713bf
grpcproxy: don't wait for ctx.Done() to close kv donec
...
Causes a goroutine leak in ActiveConnection.Close() tests. Channel is
vestigial since removing ccache; revisit if kv ever needs goroutines.
2017-02-15 00:16:25 -08:00
49a0a63fc3
grpcproxy: split out leadership detection code
...
Move out of watch code since will be shared with lease code. Also assumes
leader does not exist unless watch can be successfully created.
2017-02-15 00:16:25 -08:00
853f68071b
grpcproxy: respect CompactRevision in watcher
...
CompactRevision wasn't sent over watch stream, causing TestKVCompact to hang.
2017-02-13 15:43:41 -08:00
c22ba766d5
grpcproxy: support CountOnly
...
TestKVRange from client integration tests was failing.
2017-02-10 16:06:24 -08:00
1fe2a9b124
Revert "Merge pull request #7139 from heyitsanthony/proxy-rlock"
...
This reverts commit 304606ab0b
, reversing
changes made to 7dfe503f1c
.
2017-02-10 14:37:48 -08:00
e42fa18ccf
grpcproxy: don't use WithRequireLeader for watch event stream
...
Ohterwise leader loss will reject all stream creation.
2017-02-02 09:32:25 -08:00
2fce80e4c0
grpcproxy: handle 'IgnoreLease' field in PutRequest
2017-01-25 03:14:31 +05:30
8c0282ab24
grpcproxy, etcdmain, integration: add close channel to kv proxy
...
ccache launches goroutines that need to be explicitly stopped.
Fixes #7158
2017-01-18 11:51:16 -08:00
0f8060bede
grpcproxy: handle 'IgnoreValue' field in PutRequest
2017-01-13 15:13:18 -08:00
9fa6c95054
grpcproxy: use ccache for key cache
...
groupcache needs a write lock and has no way to expire keys; ccache can
do this, though.
Also removes the key count metric, since there's no way to efficiently
calculate it using ccache.
2017-01-13 10:00:57 -08:00
e179225f28
grpcproxy: tear down watch when client context is done
...
If client closes but all watch streams are not canceled, the outstanding
watch will wait until it is canceled, causing watch server to potentially
wait forever to close.
Fixes #7102
2017-01-04 16:23:27 -08:00
9b5eb1ae5a
grpcproxy, etcdmain, integration: return done channel with WatchServer
...
Makes it possible to synchronously close the watch server.
Fixes #7078
2016-12-30 12:09:48 -08:00
7e74b3f846
grpcproxy: remove unused field 'wbs *watchBroadcasts'
2016-12-12 10:07:14 -08:00
a98de7efa7
grpcproxy: fix minor typo
2016-12-07 17:08:46 -08:00
91ff6f30b5
grpcproxy: fix deadlock in watchbroadcast
...
Calling empty() in watchbroadcast methods was trying to
lock the rwmutex when it was already held.
Fixes #6937
2016-12-05 15:06:44 -08:00
62398954e4
grpcproxy: lock store when getting size
...
Fixes data race in proxy integration tests.
2016-12-05 13:29:57 -08:00
0cb680800e
grpcproxy: add cache related metrics
2016-12-02 15:29:42 -08:00
1f954dc9f4
Merge pull request #6926 from xiang90/metrics
...
grpcproxy: add richer metrics for watch
2016-12-02 14:13:43 -08:00
a686c994cd
grpcproxy: add richer metrics for watch
2016-12-02 11:13:30 -08:00
60908c64a6
grpcproxy: fix race between coalesce and bcast on nextrev
...
coalesce was locking the target coalesce broadcast object but not the source
broadcast object resulting in a data race on the source's nextrev.
2016-11-30 16:50:29 -08:00
d680b8b5fb
grpcproxy: fix race between watch ranges delete() and broadcasts empty()
...
Checking empty() wasn't grabbing the broadcasts lock so the race detector
flags it as a data race with coalesce(). Instead, just return the number
of remaining watches following delete() and get rid of empty().
2016-11-28 15:53:41 -08:00
7618fdd1d6
grpcproxy: fix deadlock on watch broadcasts stop
...
Holding the WatchBroadcasts lock and waiting on donec was
causing a deadlock with the coalesce loop. Was causing
TestV3WatchSyncCancel to hang.
2016-11-18 16:55:26 -08:00
1358a9d460
grpcproxy: copy range request before storing in cache
...
Reused Range requests would have Serialized overwritten with 'true'.
Was failing on TestV3LeaseSwitch.
2016-11-15 14:35:00 -08:00
98a7c642d4
grpcproxy: watch next revision should be start revision when not 0
...
The create header revision is the current etcd revision. For watches with
rev=0, the next revision is hdr.rev+1. For watches with rev=n, the next
revision should be n.
Fixes TestDoubleBarrier timeouts.
2016-11-14 16:46:02 -08:00
90ea3fbadc
grpcproxy: do not resend create event after leader loss
...
Only set CreateNotify if no watch responses have been received.
2016-11-14 10:43:06 -08:00
e40da39143
grpcproxy: only coalesce watchers that have received create response
...
Current watchers may have nextrev=0; check response count instead.
2016-11-14 09:19:02 -08:00
6604306398
grpcproxy: support prevKV watcher
...
Makes all server watchers PrevKV, discards if client watcher is not PrevKV.
2016-11-11 14:22:06 -08:00
395cf7de51
grpcproxy: reject invalid watch ranges
2016-11-11 10:14:35 -08:00