Skip to content

Releases: grpc/grpc-go

Release 1.6.0

30 Aug 18:25
Compare
Choose a tag to compare

API Changes

  • Add and use connectivity package for states (#1430)
  • metadata: Remove NewContext and FromContext for gRFC L7 (#1392)
  • Remove expiration_interval from grpclb message (#1477)

Features

  • Add status details support to server HTTP handler (#1438)
  • stats: add methods to allow setting grpc-trace-bin and grpc-tags-bin headers (#1404)
  • Expose ConnectivityState of a ClientConn. (#1385)
  • DNS resolver (#1300)

Performance

  • Put *gzip.Writer back to pool (#1441)
  • Remove defer funtion in recvBufferReader Read method (#1031)

Bug fixes

  • When sending a non heads-up goaway close the connection if there are no active streams. (#1474)
  • Fix grpclb protos to not cause re-registration of types (#1466)
  • transport: fix handling of InTapHandle's returned context (#1461)
  • transport: Fix deadlock in client keepalive. (#1460)
  • Deduplicate dns record in lookup (#1454)
  • Fix host string passed to PerRPCCredentials (#1433)
  • Fix a goroutine leak in DialContext (#1424)
  • Set peer before sending request (#1423)
  • Don't use 64-bit integers with atomic. (#1411)
  • Automatic WriteStatus for RecvMsg/SendMsg error on server side (#1409)
  • Server should send 2 goaway messages to gracefully shutdown the connection. (#1403)
  • Enabling client process multiple GoAways (#1393)
  • addrConn: change address to slice of address (#1376)
  • Do not create new addrConn when connection error happens (#1369)
  • Validate send quota again after acquiring writable channel (#1367)

Documentation

  • add comment for the package in benchmark/benchmain/main.go (#1464)
  • Add -u to installation command (#1451)
  • Update ServerInHandle comments (#1437)
  • Add 'experimental' note to ServeHTTP godoc (#1429)
  • Use NewOutgoingContext in the metadata doc (#1425)
  • Fix missing and wrong license (#1422)
  • Change comment on stats.End.Error (#1418)
  • Document Server.ServeHTTP (#1406)
  • Use log instead of grpclog in routeguide example (#1395)
  • Add doc in default implementation fatal functions on os.Exit() (#1365)

Testing

  • Check "x/net/context" with go vet like "context" (#1490)
  • Remove unnecessary function handleStreamSuspension (#1468)
  • Call cancel function to avoid ctx leak (#1465)
  • go-generate pb.go files and check in Travis to make sure they don't change (#1426)
  • Add flags for tls file path (#1419)
  • Call cancel on contexts in tests (#1412)
  • benchmark: don't stop timer until after workers are done (#1407)
  • Assign testdata path to correct variable (#1397)
  • Do not call testdata.Path when defining flags (#1394)
  • Fix bufconn.Close to not be blocking. (#1377)
  • benchmark: add benchmain/main.go to run benchmark with flag set (#1352)
  • benchmark: remove multi-layer for loop (#1339)
  • Add testdata package and unify testdata to only one dir (#1297)

Release 1.5.2

14 Aug 22:26
Compare
Choose a tag to compare
  • Expose ConnectivityState of a ClientConn. (#1385)
  • Enabling client process multiple GoAways (#1393)
  • Server should send 2 goaway messages to gracefully shutdown the connection. (#1403)
  • Set peer before sending request (#1423)
  • Add and use connectivity package for states (#1430)

Release 1.5.1

27 Jul 17:44
Compare
Choose a tag to compare
  • Do not create new addrConn when connection error happens (#1369)

Release 1.5.0

19 Jul 21:41
Compare
Choose a tag to compare

Performance

  • BDP estimation and window update. (#1310)
  • Do not flush NewStream header on client side for unary RPCs and streaming RPCs with requests. (#1343)
  • Change objects in recvBuffer queue from interface to concrete type to reduce allocs (#1029)
  • Don't create new reader in recvMsg (#940)

API change

  • Add support for grpc.SupportPackageIsVersion3 back (#1331)
  • Add Severity and VerboseLevel to grpclog. (#922)

Behavior change

  • Transport errors should be coded Unavailable instead of internal. (#1307)
  • Catch invalid use of Server.RegisterService after Register.Serve (#828)

Bug fixes

  • Fix deadlock of roundrobin balancer (#1353)
  • Use log severity and verbosity level (#1340)
  • Protect bytesSent and bytesReceived with mutex to avoid datarace (#1318)
  • Support IPv6 addresses in grpclb (#1303)
  • Return header in Stream.Header() if available (#1281)
  • Fix error handling on Stream deletion (#1275)

Documentation

  • Add documentation to deprecate WithTimeout dial option (#1333)
  • Specify characters allowed in metadata keys (#1299)
  • Update LICENSE to Apache 2 (#1290)
  • Update the path of guide (#950)

Testing

  • latency: sleep in Write when BDP is exceeded to avoid buffer bloat (#1330)
  • Replace 127.0.0.1 with localhost for ipv6 only environment (#1306)
  • Create latency package for realistically simulating network latency (#1286)
  • Use subtests for the benchmark_test and add it into the Makefile (#1278)

Release 1.4.2

22 Jun 20:41
Compare
Choose a tag to compare
  • Protect bytesSent and bytesReceived with mutex to avoid datarace (#1318)

Release 1.4.1

14 Jun 21:56
Compare
Choose a tag to compare
  • transport: fix error handling on Stream deletion (#1275)

Release 1.4.0

07 Jun 18:20
Compare
Choose a tag to compare

New features

  • Implement EmptyCallOption (#1244)
  • Adding dial options for PerRPCCredentials (#1225)
  • Expand service config support (#1165)

Performance

  • Piggyback window updates for connection with those of a stream. (#1273)
  • Decouple transport flow control from application read. (#1265)
  • Expand stream's flow control in case of an active read. (#1248)
  • Eagerly set a pointer to nil to help GC (#1232)
  • Use pooled gzip.{Writer,Reader} in gzip{Compressor,Decompressor} (#1217)
  • Make window size configurable. (#1210)

Bug fixes

  • Server shouldn't Fatalf in case it fails to encode. (#1276)
  • Avoid uint32 overflow when applying initial window size setting (#1268)
  • Initialize stream properly in handler_server. (#1260)
  • Avoid panic caused by stdlib context package errors (#1258)
  • grpclb balancer.Close() should not panic if called more than once (#1250)
  • Reuse Token for serviceAccount credentials (#1238)
  • add logs to grpclb on send and recv (#1235)
  • Calling handleRPC with context derived from the original (#1227)
  • Reset proto before unmarshalling (#1222)
  • don't add defer func if stats handler is nil (#1214)
  • Fix go buildable source file problem (#1213)
  • Pass custom dialer to balancer (#1205)
  • Fix http status code to grpc status conversion (#1195)
  • make ServerOption panic messages more clear. (#1194)
  • Log the actual error when inTapHandle fails in http2Server (#1185)
  • tentative fix to a flow control over-give-back bug (#1170)
  • Add stats test for client streaming and server streaming RPCs (#1140)
  • Ensure that RoundRobin.Close() does not panic. (#1139)
  • fix server panic trying to send on stream as client disconnects #1111 (#1115)
  • Suppress server log message when EOF without receiving data for preface (#1052)
  • clientconn, server: replace time.After with time.NewTimer (#998)
  • reflection: check ServerReflectionInfo error (#958)

Documentation

  • transport: fix minor typo in 'GoAway' godoc (#1284)
  • Update references to route_guide.proto to use new directory name (#1270)
  • Improve contributing.md and add issue template (#1267)
  • Fixed comment spelling (#1254)
  • Defined GA and add pointer to benchmarks (#1239)
  • Add doc and example for mocking streaming RPCs (#1230)
  • Fix doc (#1221)
  • stress/client: fix minor typo (#957)

Testing

  • add MaxConcurrentStreams to benchmark_test when start the server (#1271)
  • re-enable handler_server in end2end test, and fix some failed tests (#1259)
  • call listen with "localhost:port" instead of ":port" in tests (#1237)
  • Travis: add staticcheck (#1019)

Release 1.3.0

28 Apr 21:38
Compare
Choose a tag to compare

API change

  • Never encode binary metadata within the metadata map (#1188)
  • Update grpclb proto and move grpclb into package grpc (#1186)
  • Change status package to deal with concrete types instead of interfaces (#1171)
  • Behavior change: do not strip out gRPC user-agent (#1158)
  • Separate incoming and outgoing metadata in context (#1157)
  • Add status package for reporting gRPC status and errors (#1156)
  • remove support for go1.5 (#1132)

New Feature

  • Client load report for grpclb. (#1200)
  • Client should update keepalive parameters upon receiving GoAway (#1169)
  • Implementation for server enforcement of keepalive policy. (#1147)
  • Add grpc.Version string and use it in the UA (#1144)
  • Support max age(#1119)
  • Support proxy with dialer (#1098)

Behavior change

  • populate initReq target name and fix IP []byte type in grpclb (#1145)
  • pick a random address if the current in use is deleted by resolver (#1135)
  • :authority should include port number (#1123)
  • Don't return an error from dial if the balancer returns no initial servers (#1112)

Bug fix

  • Fix nil pointer dereferences from status.FromProto(nil) (#1211)
  • Use unpadded base64 encoding for binary metadata headers; handle padded or unpadded input (#1209)
  • Use proto.Equal for equalities on Go proto messages (#1204)
  • Move handling stats.End to clientStream.finish() (#1182)
  • grpclb should connect to the second balancer (#1181)
  • add error handling for InvalidArgument error from sendResponse() (#1173)
  • transport: implement GoString on Stream (#1167)
  • Bug fix(Issue#1141): Check if peer is nil before trying to derefer it. (#1143)
  • Make sure all in-flight streams close when ClientConn.Close() is called. (#1136)

Performance

  • opt in to frame reuse on the framer to reduce garbage (#1096)
  • use proto.Buffer API for protobuf codec and cache proto.Buffer structs (#1010)

Documentation

  • add document to ClientHandshake about returning temporary error (#1125)

Release 1.2.1

07 Apr 19:10
Compare
Choose a tag to compare
  • Add grpc.Version string and use it in the UA (#1144)
  • transport: implement GoString on Stream (#1167)

Release 1.2.0

20 Mar 22:24
Compare
Choose a tag to compare

New features

  • Health check keep alive client side implementation #993
  • Client should have a check on maximum size of received message size #1117
  • ClientHandshake returns AuthInfo #956
  • Add calloption to retrieve peer information #1066

Bug fixes

  • Cap the client side default number of max concurrent streams per connection to 100 #1071
  • Use codes.Code.String() rather than logging integers #1027
  • Account for padding in flow control, when received frame uses it #1076
  • Client should send a RST_STREAM before freeing the quota on rpc context timeout #1124

Documentation

  • Add document and example for go mock #1021