Skip to content

Releases: linkerd/linkerd

1.7.5

26 May 20:11
ea82499
Compare
Choose a tag to compare

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

1.7.5-rc1

01 Jun 17:31
f968e49
Compare
Choose a tag to compare

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

10 Jun 20:54
0edec73
Compare
Choose a tag to compare

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

22 May 18:58
3b314a6
Compare
Choose a tag to compare

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.

  • Upgrade to finagle 20.4.1 and Netty 4.1.47-Final #2386
  • Upgrade to Node 14.2.0 and eslint 6.8.0 #2389

1.7.2

31 Mar 01:35
Compare
Choose a tag to compare

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

19 Dec 20:46
e038d9e
Compare
Choose a tag to compare

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:

  • HTTP/1.1
    • Adds configuration server.serverSession to allow expiring server connections #2353
    • Ensures that the streamingEnabled router parameter is handled properly #2332
  • HTTP/2
    • Adds functionality to respect maxConcurrentStreams for server dispatchers #2327
  • Linkerd Mesh Interpreter
    • Add the initialStreamWindowSizeKB parameter to the io.l5d.mesh interpreter. #2364

1.7.0

29 Aug 16:06
Compare
Choose a tag to compare

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 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

    • 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.
  • 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
      using maxErrResponseKB in an HTTP router
    • Fixes an issue were some socketOptions were being ignored when partially
      configured
  • TLS

    • Fixes an issue where Linkerd can't connect to SNI servers that are addressed
      via IPv4 and IPv6
  • 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

01 Jul 19:53
Compare
Choose a tag to compare

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:

  • Upgrade to finagle 19.5.1 #2284
  • Support configurable response body sizes from consul #2286
  • Log inbound requests to namerd #2275

1.6.2.2

25 Jun 01:16
Compare
Choose a tag to compare

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

11 May 00:25
603261b
Compare
Choose a tag to compare

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
  • HTTP/2
    • Fixes an issue where Linkerd could sometimes exhaust direct memory when routing HTTP/2 requests
      that immediately receive a RST_STREAM frame.
  • Fixes a 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.
  • 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.