Skip to content

Latest commit

 

History

History
95 lines (85 loc) · 11.8 KB

current.rst

File metadata and controls

95 lines (85 loc) · 11.8 KB

1.16.0 (Pending)

Incompatible Behavior Changes

Changes that are expected to cause an incompatibility if applicable; deployment changes are likely required

  • build: added visibility rules for upstream. If these cause visibility related breakage, see notes in //BUILD.

Minor Behavior Changes

Changes that may cause incompatibilities for some users, but should not for most

  • compressor: always insert Vary headers for compressible resources even if it's decided not to compress a response due to incompatible Accept-Encoding value. The Vary header needs to be inserted to let a caching proxy in front of Envoy know that the requested resource still can be served with compression applied.
  • decompressor: headers-only requests were incorrectly not advertising accept-encoding when configured to do so. This is now fixed.
  • http: added :ref:`headers_to_add <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.ResponseMapper.headers_to_add>` to :ref:`local reply mapper <config_http_conn_man_local_reply>` to allow its users to add/append/override response HTTP headers to local replies.
  • http: added HCM level configuration of :ref:`error handling on invalid messaging <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_error_on_invalid_http_message>` which substantially changes Envoy's behavior when encountering invalid HTTP/1.1 defaulting to closing the connection instead of allowing reuse. This can temporarily be reverted by setting envoy.reloadable_features.hcm_stream_error_on_invalid_message to false, or permanently reverted by setting the :ref:`HCM option <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.stream_error_on_invalid_http_message>` to true to restore prior HTTP/1.1 beavior and setting the new HTTP/2 configuration :ref:`override_stream_error_on_invalid_http_message <envoy_v3_api_field_config.core.v3.Http2ProtocolOptions.override_stream_error_on_invalid_http_message>` to false to retain prior HTTP/2 behavior.
  • http: changed Envoy to send error headers and body when possible. This behavior may be temporarily reverted by setting envoy.reloadable_features.allow_response_for_timeout to false.
  • http: changed empty trailers encoding behavior by sending empty data with end_stream true (instead of sending empty trailers) for HTTP/2. This behavior can be reverted temporarily by setting runtime feature envoy.reloadable_features.http2_skip_encoding_empty_trailers to false.
  • http: clarified and enforced 1xx handling. Multiple 100-continue headers are coalesced when proxying. 1xx headers other than {100, 101} are dropped.
  • http: fixed the 100-continue response path to properly handle upstream failure by sending 5xx responses. This behavior can be temporarily reverted by setting envoy.reloadable_features.allow_500_after_100 to false.
  • http: the per-stream FilterState maintained by the HTTP connection manager will now provide read/write access to the downstream connection FilterState. As such, code that relies on interacting with this might see a change in behavior.
  • logging: add fine-grain logging for file level log control with logger management at administration interface. It can be enabled by option --enable-fine-grain-logging.
  • logging: change default log format to "[%Y-%m-%d %T.%e][%t][%l][%n] [%g:%#] %v" and default value of :option:`--log-format-prefix-with-location` to 0.
  • logging: nghttp2 log messages no longer appear at trace level unless ENVOY_NGHTTP2_TRACE is set in the environment.
  • router: added transport failure reason to response body when upstream reset happens. After this change, the response body will be of the form upstream connect error or disconnect/reset before headers. reset reason:{}, transport failure reason:{}.This behavior may be reverted by setting runtime feature envoy.reloadable_features.http_transport_failure_reason_in_body to false.
  • router: now consumes all retry related headers to prevent them from being propagated to the upstream. This behavior may be reverted by setting runtime feature envoy.reloadable_features.consume_all_retry_headers to false.
  • thrift_proxy: special characters {'0', 'r', 'n'} will be stripped from thrift headers.

Bug Fixes

Changes expected to improve the state of the world and are unlikely to have negative effects

  • csrf: fixed issues with regards to origin and host header parsing.
  • dynamic_forward_proxy: only perform DNS lookups for routes to Dynamic Forward Proxy clusters since other cluster types handle DNS lookup themselves.
  • fault: fixed an issue with active_faults gauge not being decremented for when abort faults were injected.
  • grpc-web: fixed an issue with failing HTTP/2 requests on some browsers. Notably, WebKit-based browsers (https://bugs.webkit.org/show_bug.cgi?id=210108), Internet Explorer 11, and Edge (pre-Chromium).
  • rocketmq_proxy network-level filter: fixed an issue involving incorrect header lengths. In debug mode it causes crash and in release mode it causes underflow.

Removed Config or Runtime

Normally occurs at the end of the :ref:`deprecation period <deprecated>`

  • http: removed legacy header sanitization and the runtime guard envoy.reloadable_features.strict_header_validation.
  • http: removed legacy transfer-encoding enforcement and runtime guard envoy.reloadable_features.reject_unsupported_transfer_encodings.
  • http: removed configurable strict host validation and runtime guard envoy.reloadable_features.strict_authority_validation.
  • http: removed the connection header sanitization runtime guard envoy.reloadable_features.connection_header_sanitization.

New Features

Deprecated