Commit e8880623 authored by Andrei Mihu's avatar Andrei Mihu
Browse files

Update 'grpc' dependency.

parent 6d10880c
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -655,16 +655,18 @@
  revision = "02b4e95473316948020af0b7a4f0f22c73929b0e"

[[projects]]
  digest = "1:5f31b45ee9da7a87f140bef3ed0a7ca34ea2a6d38eb888123b8e28170e8aa4f2"
  digest = "1:d141efe4aaad714e3059c340901aab3147b6253e58c85dafbcca3dd8b0e88ad6"
  name = "google.golang.org/grpc"
  packages = [
    ".",
    "balancer",
    "balancer/base",
    "balancer/roundrobin",
    "binarylog/grpc_binarylog_v1",
    "codes",
    "connectivity",
    "credentials",
    "credentials/internal",
    "credentials/oauth",
    "encoding",
    "encoding/gzip",
@@ -672,8 +674,13 @@
    "grpclog",
    "internal",
    "internal/backoff",
    "internal/binarylog",
    "internal/channelz",
    "internal/envconfig",
    "internal/grpcrand",
    "internal/grpcsync",
    "internal/syscall",
    "internal/transport",
    "keepalive",
    "metadata",
    "naming",
@@ -684,11 +691,10 @@
    "stats",
    "status",
    "tap",
    "transport",
  ]
  pruneopts = ""
  revision = "168a6198bcb0ef175f7dacec0b8691fc141dc9b8"
  version = "v1.13.0"
  revision = "df014850f6dee74ba2fc94874043a9f3f75fbfd8"
  version = "v1.17.0"

[[projects]]
  digest = "1:1c59d1f588f06f61d72480163b90a67f9380aca3d6c8ed6fee27d29a8d0ea515"
+1 −1
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@

[[constraint]]
  name = "google.golang.org/grpc"
  version = "~1.13.0"
  version = "~1.17.0"

[[constraint]]
  name = "github.com/go-yaml/yaml"
+2 −0
Original line number Diff line number Diff line
daysUntilLock: 180
lockComment: false
+26 −13
Original line number Diff line number Diff line
language: go

go:
  - 1.6.x
  - 1.7.x
  - 1.8.x
  - 1.9.x
  - 1.10.x

matrix:
  include:
  - go: 1.10.x
  - go: 1.11.x
    env: VET=1 GO111MODULE=on
  - go: 1.11.x
    env: RACE=1 GO111MODULE=on
  - go: 1.11.x
    env: RUN386=1
  - go: 1.11.x
    env: GRPC_GO_RETRY=on
  - go: 1.10.x
  - go: 1.9.x
  - go: 1.9.x
    env: GAE=1

go_import_path: google.golang.org/grpc

before_install:
  - if [[ -n "$RUN386" ]]; then export GOARCH=386; fi
  - if [[ "$TRAVIS_GO_VERSION" = 1.10* && "$GOARCH" != "386" ]]; then ./vet.sh -install || exit 1; fi
  - if [[ "${GO111MODULE}" = "on" ]]; then mkdir "${HOME}/go"; export GOPATH="${HOME}/go"; fi
  - if [[ -n "${RUN386}" ]]; then export GOARCH=386; fi
  - if [[ "${TRAVIS_EVENT_TYPE}" = "cron" && -z "${RUN386}" ]]; then RACE=1; fi
  - if [[ "${TRAVIS_EVENT_TYPE}" != "cron" ]]; then VET_SKIP_PROTO=1; fi

install:
  - try3() { eval "$*" || eval "$*" || eval "$*"; }
  - try3 'if [[ "${GO111MODULE}" = "on" ]]; then go mod download; else make testdeps; fi'
  - if [[ "${GAE}" = 1 ]]; then source ./install_gae.sh; make testappenginedeps; fi
  - if [[ "${VET}" = 1 ]]; then ./vet.sh -install; fi

script:
  - if [[ "$TRAVIS_GO_VERSION" = 1.10* && "$GOARCH" != "386" ]]; then ./vet.sh || exit 1; fi
  - make test || exit 1
  - if [[ "$GOARCH" != "386" ]]; then make testrace; fi
  - set -e
  - if [[ "${VET}" = 1 ]]; then ./vet.sh; fi
  - if [[ "${GAE}" = 1 ]]; then make testappengine; exit 0; fi
  - if [[ "${RACE}" = 1 ]]; then make testrace; exit 0; fi
  - make test
+46 −0
Original line number Diff line number Diff line
# Keepalive

gRPC sends http2 pings on the transport to detect if the connection is down. If
the ping is not acknowledged by the other side within a certain period, the
connection will be close. Note that pings are only necessary when there's no
activity on the connection.

For how to configure keepalive, see
https://godoc.org/google.golang.org/grpc/keepalive for the options.

## What should I set?

It should be sufficient for most users to set [client
parameters](https://godoc.org/google.golang.org/grpc/keepalive) as a [dial
option](https://godoc.org/google.golang.org/grpc#WithKeepaliveParams).

## What will happen?

(The behavior described here is specific for gRPC-go, it might be slightly
different in other languages.)

When there's no activity on a connection (note that an ongoing stream results in
__no activity__ when there's no message being sent), after `Time`, a ping will
be sent by the client and the server will send a ping ack when it gets the ping.
Client will wait for `Timeout`, and check if there's any activity on the
connection during this period (a ping ack is an activity).

## What about server side?

Server has similar `Time` and `Timeout` settings as client. Server can also
configure connection max-age. See [server
parameters](https://godoc.org/google.golang.org/grpc/keepalive#ServerParameters)
for details.

### Enforcement policy

[Enforcement
policy](https://godoc.org/google.golang.org/grpc/keepalive#ServerParameters) is
a special setting on server side to protect server from malicious or misbehaving
clients.

Server sends GOAWAY with ENHANCE_YOUR_CALM and close the connection when bad
behaviors are detected:
 - Client sends too frequent pings
 - Client sends pings when there's no stream and this is disallowed by server
   config
Loading