Skip to content
  • 1.7.4
  • 0edec73
  • Compare
    Choose a tag to compare
    Search for a tag
  • 1.7.4
  • 0edec73
  • Compare
    Choose a tag to compare
    Search for a tag

@cpretzer cpretzer released this Jun 10, 2020

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.

Assets 5
  • 1.7.3
  • 3b314a6
  • Compare
    Choose a tag to compare
    Search for a tag
  • 1.7.3
  • 3b314a6
  • Compare
    Choose a tag to compare
    Search for a tag

@cpretzer cpretzer released this May 22, 2020 · 5 commits to master since this release

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

@cpretzer cpretzer released this Mar 31, 2020 · 10 commits to master since this release

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.

Assets 5
  • 1.7.1
  • e038d9e
  • Compare
    Choose a tag to compare
    Search for a tag
  • 1.7.1
  • e038d9e
  • Compare
    Choose a tag to compare
    Search for a tag

@cpretzer cpretzer released this Dec 19, 2019 · 15 commits to master since this release

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

@dadjeibaah dadjeibaah released this Aug 29, 2019 · 29 commits to master since this release

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

Assets 5

@cpretzer cpretzer released this Jul 1, 2019 · 45 commits to master since this release

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

@cpretzer cpretzer released this Jun 25, 2019 · 57 commits to master since this release

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

Assets 5
  • 1.6.3
  • 603261b
  • Compare
    Choose a tag to compare
    Search for a tag
  • 1.6.3
  • 603261b
  • Compare
    Choose a tag to compare
    Search for a tag

@dadjeibaah dadjeibaah released this May 11, 2019 · 48 commits to master since this release

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.
Assets 5

@adleong adleong released this Mar 28, 2019 · 57 commits to master since this release

This bug fix release fixes an issue where Linkerd can send excessive load to Namerd in certain
situations when Linkerd is unable to establish TCP connections to services. To remedy this,
detailed delegation information has been removed from error responses returned by Linkerd. This
detailed delegation information is still available by using the dtab page of the Linkerd admin
server.

Assets 5
  • 1.6.2
  • db0581a
  • Compare
    Choose a tag to compare
    Search for a tag
  • 1.6.2
  • db0581a
  • Compare
    Choose a tag to compare
    Search for a tag

@dadjeibaah dadjeibaah released this Mar 11, 2019 · 57 commits to master since this release

This Linkerd release includes bug fixes for Namerd's k8s watch API as well as memory management
improvements in the io.l5d.zk storage plugin. This release features a new failure detector
module in the io.l5d.mesh interpreter that sends "heartbeat" pings on all HTTP/2 connections to
Namerd. This is intended to monitor the health of connections between Linkerd and Namerd so that
connections are torn down and re-established if a ping message is not received within a configured
amount of time.

This release also includes doc updates from the following contributors:

A big shoutout to all contributors listed above for their great work!

Full release notes:

  • OpenJ9
    • Fixes an issue in Linkerd's OpenJ9 docker image where Linkerd may sometimes run into an
      OutOfMemoryErrorException caused by OpenJ9's JDK base image
  • Namerd
    • Fixes a memory leak in the io.l5d.zk dtab storage module
    • Fixes an issue where Namerd stops watching dtabs if it receives HTTP 404 from a Kubernetes
      API server while restarting a watch API request
  • Linkerd Mesh Interpreter
    • Adds a failure detector in the io.l5d.mesh interpreter to help monitor the health of
      connections to Namerd. The failure detector can be configured by providing a minPeriodMs
      which sets the duration between each successive ping and a closeTimeoutMs parameter that
      sets a duration that must elapse before a connection is marked as "unhealthy"
  • Adds support for configuring socketOptions in the client section of a Linkerd config
Assets 5