2863 Commits

Author SHA1 Message Date
ed10349f45 stats: add WireLength to stats.InPayload (#2692) (#2711) 2019-03-25 15:42:16 -07:00
6d8271a06c credentials: add compute engine channel creds (#2708) 2019-03-25 14:47:12 -07:00
ef9bac2604 cleanup: remove unnecessary ignoreContentType field (#2715) 2019-03-22 13:56:18 -07:00
ktr
0e83fbebe8 encoding: check whether encoding.Name() is empty before calling strings.ToLower (#2707) 2019-03-22 13:34:43 -07:00
aded19ed6f update to use new fancy issue templates (#2712) 2019-03-22 10:50:40 -07:00
3910b873d3 bar: add ability to update resolver state atomically and pass directly to the balancer (#2693) 2019-03-22 10:48:55 -07:00
bcfa7b30ac Downgrade grpclb package info logs to V(2). (#2710)
Fixes #2709.
2019-03-22 10:11:37 -07:00
22c2121b7d benchmark: exit after printing help when using -h (#2701) 2019-03-21 12:04:35 -07:00
66cd524910 transport: stop using http.CloseNotifier in handler server (#2697) 2019-03-20 13:32:46 -07:00
d021e89b3f internal: fix Dial_OneBackoffPerRetryGroup (#2689)
* internal: fix Dial_OneBackoffPerRetryGroup

Instead of mutating global variables, switches getMinConnectDeadline to a
dial option.

Fixes #2687.

* rename getMinConnectTimeoutFunc to minConnectTimeout, ditto dial opt
2019-03-20 13:58:29 -06:00
495133b619 internal: fix pickoptions in balancer_test (#2698)
The same test was changed by two PRs, merge didn't catch the conflict
2019-03-19 13:26:46 -07:00
ce45558927 balancer: make sure non-nil done returned by Pick is called (#2688)
Special case: when SubConn returned by Picker is not Ready, call done before
looping back to re-pick.
2019-03-19 10:47:09 -07:00
272a4b69f1 transport: do not close channel that can lean to panic (#2695)
`Write` can be called concurrently, for which it calls the `do` function.
As `WriteStatus` can close the `ht.writes` in parallel as well the `Write`
will try to write into the `ht.writes` in the `do` function, this can
lead into a panic. As there is no real usability on closing this channel
we can simply leave it to the garbage collector so we can avoid panic
during an execution.

Signed-off-by: André Martins <aanm90@gmail.com>
2019-03-19 10:29:19 -07:00
fba6715d1c addrConn: resetTransport loop cleanup (#2676)
Refactor retry loop after #2673
2019-03-19 10:28:26 -07:00
d7d977965e grpclb: support pickfirst (#2652)
Use pickfirst as balancing policy for backends. It can only set at init time.
Does not support changing with service config now.
2019-03-19 10:17:31 -07:00
3c84def893 balancer: remove Header from PickOptions; it is also available through context (#2674) 2019-03-15 09:00:55 -07:00
2d5c4dfb95 server: send RST_STREAM after trailers if client has not half-closed (#2684)
Fixes #834
2019-03-14 15:15:50 -07:00
2098091c81 dns: prefixing txt record lookup with "_grpc_config." (#2691) 2019-03-14 13:40:48 -07:00
7c93bdf75a internal: update x/lint dependency (#2690)
golang.org/x/lint recently got a go.mod d0100b6bd8
Let's be sure to minimally use this version, since its dependencies are
now codified.

This CL was generated by deleting the x/lint line in go.mod and running
`go mod tidy`.
2019-03-14 14:38:41 -06:00
3958fc86cc addrConn: resetTransport cleanup (#2673) 2019-03-14 13:14:19 -07:00
ff28255d10 cleanup: fix typo in comment (#2657)
Although it is spelling mistakes, it might make an effect while reading.
2019-03-14 13:12:48 -07:00
9c3a959569 stats: add Trailer to client-side stats.End (#2639)
Currently, it is not possible to access trailers from within a
stats.Handler. The reason is that both stats.Handler and
ClientStream.Trailer require a lock on the ClientStream.

A workaround would be to start a separate goroutine that will call
ClientStream.Trailer asynchronously, but that requires careful
coordination and we can quite easily make the trailer metadata available
to the stats.Handler directly.

Use case: an interceptor that processes trailer metadata for each
streaming RPC after the stream has finished. Note that a
StreamClientInterceptor returns immediately, before the stream has
finished and before the trailer metadata is available.
2019-03-13 10:10:52 -07:00
d3f95b277a xds: fix xds api change breakage (#2685) 2019-03-12 15:41:26 -07:00
77ce7bc228 minor: typo fix (#2680) 2019-03-11 15:06:47 -07:00
69e99ca520 grpclb: keep drop index unless a new serverlist is received (#2631)
Keep the drop index from the previous picker when regenerating picker due to
subchannel state change. Only reset the drop index when picker is regenerated
because of a serverlist update.

fixes #2623
2019-03-11 10:09:16 -07:00
29adad9d71 edsbalancer: fix address format (#2675) 2019-03-08 15:17:55 -08:00
5abb35752c client: reset backoff to 0 after a connection is established (#2669)
#2663
#2636
2019-03-08 10:16:19 -08:00
a1a84e16d0 service config: make retryThrottling maxTokens setting of 1000 valid (#2670) 2019-03-07 14:30:57 -08:00
2369d0a0a1 travis: add Go 1.12.x to CI (#2671) 2019-03-07 13:31:25 -08:00
a618c37a27 server: Don't log errors on ErrConnDispatched (#2656)
ErrConnDispatched is a normal error -- we should not fill up logs with it.
2019-03-07 13:22:17 -08:00
79c9bc6794 client: handle HTTP header parsing error correctly (#2599) 2019-03-06 10:59:01 -08:00
45890ffd9e xds: lowercase the field name (#2666) 2019-03-04 15:22:39 -08:00
914c52b240 xds: eds balancer (#2624)
The balancer that handles eds response and does two level balancing (locality level and endpoint level).
2019-02-28 16:19:50 -08:00
cba9cfed64 xds Balancer: implementation (#2614) 2019-02-28 15:12:40 -08:00
9ecb6116ff grpclb: drop only when at least one SubConn is ready (#2630) 2019-02-28 13:11:23 -08:00
5878d965b2 transport: remove RequireHandshakeHybrid support (#2529)
This removes RequireHandshakeHybrid support and changes the default behavior
to RequireHandshakeOn. Dial calls will now block and wait for a successful
handshake before proceeding. Users relying on the old hybrid behavior (cmux
users) should consult https://github.com/soheilhy/cmux/issues/64.

Also, several tests have been updated to take this into consideration by
sending settings frames.
2019-02-27 11:04:46 -07:00
a51d23e017 transport: return ErrConnClosing for proper handling (#2644)
transport: return ErrConnClosing for proper handling
2019-02-27 09:36:25 -08:00
3aaef9f0c1 Change version to 1.20.0-dev (#2661) 2019-02-26 11:34:33 -08:00
40cb5618f4 dialOption: export WithContextDialer() (#2629)
fixes #2627
2019-02-25 15:22:10 -08:00
871b88ce2e doc: fix typos (#2655) 2019-02-25 10:31:22 -08:00
9c297a48bb examples: remove duplicated words (#2654) 2019-02-25 10:07:04 -08:00
2773c7bbcf Fix styling (#2647)
Fix styling
2019-02-21 16:37:37 -08:00
ed70822b12 keepalive: apply minimum ping time of 10s to client and 1s to server (#2642)
* keepalive: apply minimum ping time of 10s to client and 1s to server

* review fixes
2019-02-21 13:09:37 -08:00
ae7b4f21da examples: correct typo in keepalive example (#2645) 2019-02-21 13:09:24 -08:00
b86a9dbd22 documentation: Adds package level comments (#2612)
* ADDED package level comments for: benchmark/, examples/helloworld/

* UPDATED code to run gofmt

* FIXED linter errors

* FIXED spelling error

* FIXED documentation based on feedback

* FIXED comment to add pointer to another file

* ADDED reference to start server

* ADDED fix to include command to start server
2019-02-21 13:05:00 -08:00
587cec03e6 Moves swapState up, so it gets executed no matter what. (#2649)
* Moves swapState up, so it gets executed no matter what.

* Adds an explanation.
2019-02-20 18:03:46 -08:00
29c406a5bd examples: add keepalive example (#2637) 2019-02-14 16:58:00 -08:00
6d026ae45a internal: transport_test init expected byte slice to be not all zero (#2643) 2019-02-14 09:51:36 -08:00
1dbad57dad internal: delete an info log (#2640)
This log doesn't print much useful information, and causes flooding, especially when ClientConn is closed (one Shutdown log for each subconn).
2019-02-13 14:40:29 -08:00
32559e2175 internal: server deletes stream after receiving an RST_STREAM frame
* Fixes established streams leak in the loopy writer.

RSTStreamFrames used to be ignored by the server transport, if a trailer had already been put into the transport's control buffer. If loopy writer couldn't write anything into a stream because of an error on the client side, then this trailer would never be sent. At that point, server would receive an RSTStreamFrame from client. But this RSTStreamFrame would be ignored because a trailer was already put into the control buffer. This would keep the stream open and in memory on the server side.

With this change, a cleanupStream item is put into the transport's control buffer, whenever an RSTStreamFrame is received by the server, even after a trailer has been put into the buffer.

* When client sends a header to initiate a stream just after sending an RST_STREAM, server gets these frames in the correct order.
When server receives the RST_STREAM, it marks the stream as done and defers the deletion of the stream to the loopy writer by putting a cleanupStream item into control buffer.
Then the server receives the header to initiate a stream. It acts on the header immediately and attempts to create the stream. But because the old stream is not deleted, it hits the number of streams limit and fails.
This commit solves this problem by letting server handle the deletion immediately after receiving the RST_STREAM.

* Refactors deleteStream method.

* Moves consts declarations into test function's body.
2019-02-11 17:33:22 -08:00