Old repo for Linkerd 1.x. See the linkerd2 repo for Linkerd 2.x.
Linkerd 1.7.5 is a maintenance release which adds an option to build the Linkerd and Namerd executable jar files without including the Zookeeper libraries which depend on an old version of log4j
Linkerd 1.7.5-rc1 is a release candidate for Linkerd 1.7.5
This is a release candidate that updates the following dependencies:
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.
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.
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.
Our gratitude goes out to jlawrienyt for finding and fixing this issue.
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:
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
maxRequestKB
and maxResponseKB
from Linkerd's configuration
options in favor of streamAfterContentLengthKB
. 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.Consul
io.l5d.consul
namer
to allow for arbitrarily large responses from ConsulLinkerd Configuration
maxCallDepth
that prevents unbounded
cyclic proxy request routingl5d-err
header values by
using maxErrResponseKB
in an HTTP routersocketOptions
were being ignored when partially
configuredTLS
HTTP/2
grpc-runtime
module to experience direct
memory leaksUpdates Linkerd's JDK version for improved container support
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 |
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
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:
io.l5d.k8s
dtab storage module. This change now
instruments the HTTP client that interacts with the Kubernetes API used for storing dtabs.RST_STREAM
frame.BufferUnderflowException
that could be triggered when viewing Linkerd's
interpreter watch state endpoint. This issue occurs when using Linkerd's io.l5d.namerd
thrift
interpreter.GC_LOG
start-up flag is not set on JVMs using Java 1.8 or earlier.