Releases: linkerd/linkerd
1.7.5
1.7.5-rc1
Linkerd 1.7.5-rc1 is a release candidate for Linkerd 1.7.5
This is a release candidate that updates the following dependencies:
- lodash: 4.17.15 -> 4.17.21
- Finagle: 20.4.1 -> 21.4.0
- handlebars: 4.7.6 -> 4.7.7
- y18n: 4.0.0 -> 4.0.1
- http-proxy: 1.18.0 -> 1.18.1
1.7.4
Linkerd 1.7.4 includes two fixes contributed by the open source community,
which is so greatly appreciated. The first fix enables Linkerd to properly
use dtab
paths which include #
symbols used by ZooKeeper serverset shard
syntax.
The second fix sets MaxInitialLineSize
value for the HttpConfig from
maxInitialSizeKB
parameter in the router
configuration for Linkerd.
Among other things, this ensures that Linkerd can properly handle URLs that
are very long.
1.7.3
Linkerd 1.7.3 is a maintenance release that upgrades finagle to 20.4.1 and
netty to 4.1.47-Final. The node and eslint dependencies required by the Admin
UI are also upgraded to 14.2.0 and 6.8.0, respectively.
1.7.2
Linkerd 1.7.2 is a point release which addresses gRPC responses which have no
bodies, but do have trailers. With this change in place, Linkerd will
return a failed Future containing a Non-Ok GrpcStatus instance when handling
empty gRPC responses with EOS trailers.
- gRPC
- Fix grpc handling of trailers-only h2 responses #2379
Our gratitude goes out to jlawrienyt for
finding and fixing this issue.
1.7.1
Linkerd 1.7.1 adds a parameter named initialStreamWindowSizeKB
to
MeshInterpreterInitializer.scala. This parameter is used to configure the
initial flow-control window size
that the H2 client in the io.l5d.mesh
interpreter sends to the H2 server.
Parameter Name | Default Value | Description |
---|---|---|
initialStreamWindowSizeKB |
10240 (10 MB) | Sets the initial flow-control window size for the H2 client used by the intepreter |
This release is brought to you with fixes from these contributors. Thank you
all SO much for being a part of the community!
Robert Panzer
Robert Macaulay
Full release notes:
1.7.0
Linkerd 1.7.0 includes a number of memory leak fixes for Linkerd and its
underlying grpc-runtime
module. This release includes improvements for
SNI-enabled TLS communication, support for streaming arbitrarily large HTTP
requests and responses in HTTP/1 and HTTP/2 as well an upgraded JDK for
improved Docker container support.
A special thank you to Fantayeneh for their
awesome work on #2315
Full release notes:
-
Breaking Change
- Removes
maxRequestKB
andmaxResponseKB
from Linkerd's configuration
options in favor ofstreamAfterContentLengthKB
. These parameters were
primarily intended to limit the amount of memory Linkerd used when buffering
requests. The streamAfterContentLengthKB parameter achieves this more
efficiently by streaming large messages instead of buffering them.
- Removes
-
Consul
- Enables streaming in the HTTP client used in the
io.l5d.consul
namer
to allow for arbitrarily large responses from Consul - Support for the inclusion of Consul response service and node metadata
in Namerd 'io.l5d.mesh and 'io.l5d.httpController' responses.
- Enables streaming in the HTTP client used in the
-
Linkerd Configuration
- Introduces a router parameter called
maxCallDepth
that prevents unbounded
cyclic proxy request routing - Adds support for limiting the maximum size of
l5d-err
header values by
usingmaxErrResponseKB
in an HTTP router - Fixes an issue were some
socketOptions
were being ignored when partially
configured
- Introduces a router parameter called
-
TLS
- Fixes an issue where Linkerd can't connect to SNI servers that are addressed
via IPv4 and IPv6
- Fixes an issue where Linkerd can't connect to SNI servers that are addressed
-
HTTP/2
- Fixes a number of direct and heap memory leaks in Linkerd's HTTP/2 module
- Fixes an issue causing users of
grpc-runtime
module to experience direct
memory leaks
-
Updates Linkerd's JDK version for improved container support
1.6.4
Linkerd 1.6.4 updates the finagle version to 19.5.1 and adds support for
configuring message response sizes when using consul as a namer.
ConsulInitializer.scala now includes the parameters below which are used
to configure the Http.client object that is instantiated in the newNamer
method.
Parameter Name | Default Value | Description |
---|---|---|
maxHeadersKB |
8 | The maximum size of all headers in an HTTP message created by the Consul client |
maxInitialLineKB |
4 | The maximum size of an initial HTTP message line created by the Consul client |
maxRequestKB |
5120 | The maximum size of a non-chunked HTTP request payload sent by the Consul client |
maxResponseKB |
5120 | The maximum size of a non-chunked HTTP response payload received by the Consul client |
Full release notes:
1.6.2.2
This is a bug fix release which addresses #2286. In this bug, a TooLongMessageException occurs when the number of service replicas is large enough such that the response from consul exceeds the 5MB threshold which is the default for the MaxRequestSize.
To address this scenario, ConsulInitializer.scala now includes the parameters below which are used to configure the Http.client object that is instantiated in the newNamer
method.
Parameter Name | Default Value | Description |
---|---|---|
maxHeadersKB |
8 | The maximum size of all headers in an HTTP message created by the Consul client |
maxInitialLineKB |
4 | The maximum size of an initial HTTP message line created by the Consul client |
maxRequestKB |
5120 | The maximum size of a non-chunked HTTP request payload sent by the Consul client |
maxResponseKB |
5120 | The maximum size of a non-chunked HTTP response payload received by the Consul client |
In the future, this will be addressed by streaming the chunked responses from the Consul API. This work is tracked in #2288
1.6.3
Linkerd 1.6.3 includes a bug fix for Namerd's io.l5d.k8s
dtab storage module. This fix exposes
HTTP request and response metrics for the Kubernetes API client used to store dtabs. Namerd also
includes a new logging dashboard page that allows you to change Namerd's logging verbosity at
runtime. In addition, this release improves Linkerd's HTTP/2 implementation to better manage direct
memory and includes a fix for Linkerd's interpreter_state
watch state endpoint.
A special thank you to the following contributors for their awesome doc update contributions:
Full release notes:
- Namerd
- Expose HTTP client metrics for Namerd's
io.l5d.k8s
dtab storage module. This change now
instruments the HTTP client that interacts with the Kubernetes API used for storing dtabs. - Adds a new logging dashboard page in Namerd with the ability to change logging verbosity at
runtime. This is similar to Linkerd's logging dashboard page
- Expose HTTP client metrics for Namerd's
- HTTP/2
- Fixes an issue where Linkerd could sometimes exhaust direct memory when routing HTTP/2 requests
that immediately receive aRST_STREAM
frame.
- Fixes an issue where Linkerd could sometimes exhaust direct memory when routing HTTP/2 requests
- Fixes a
BufferUnderflowException
that could be triggered when viewing Linkerd's
interpreter watch state endpoint. This issue occurs when using Linkerd'sio.l5d.namerd
thrift
interpreter. - Fixes an issue where Linkerd incorrectly uses the JVM's Parallel GC collector if the
GC_LOG
start-up flag is not set on JVMs using Java 1.8 or earlier.