Linkerd Versions Save

Old repo for Linkerd 1.x. See the linkerd2 repo for Linkerd 2.x.

1.7.5

1 year ago

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

2 years ago

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

3 years ago

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

3 years ago

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

4 years ago

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

4 years ago

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

4 years ago

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

4 years ago

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

4 years ago

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

5 years ago

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.