Skip to content

Latest commit

 

History

History
142 lines (130 loc) · 22.6 KB

v1.19.0.rst

File metadata and controls

142 lines (130 loc) · 22.6 KB

1.19.0 (July 13, 2021)

Incompatible Behavior Changes

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

  • grpc_bridge_filter: the filter no longer collects grpc stats in favor of the existing grpc stats filter. The behavior can be reverted by changing runtime key envoy.reloadable_features.grpc_bridge_stats_disabled.
  • tracing: update Apache SkyWalking tracer version to be compatible with 8.4.0 data collect protocol. This change will introduce incompatibility with SkyWalking 8.3.0.

Minor Behavior Changes

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

  • access_log: added new access_log command operator %REQUEST_TX_DURATION%.
  • access_log: removed extra quotes on metadata string values. This behavior can be temporarily reverted by setting envoy.reloadable_features.unquote_log_string_values to false.
  • admission control: added :ref:`max_rejection_probability <v1.19:envoy_v3_api_field_extensions.filters.http.admission_control.v3alpha.AdmissionControl.max_rejection_probability>` which defaults to 80%, which means that the upper limit of the default rejection probability of the filter is changed from 100% to 80%.
  • aws_request_signing: requests are now buffered by default to compute signatures which include the payload hash, making the filter compatible with most AWS services. Previously, requests were never buffered, which only produced correct signatures for requests without a body, or for requests to S3, ES or Glacier, which used the literal string UNSIGNED-PAYLOAD. Buffering can be now be disabled in favor of using unsigned payloads with compatible services via the new use_unsigned_payload filter option (default false).
  • cache filter: serve HEAD requests from cache.
  • cluster: added default value of 5 seconds for :ref:`connect_timeout <v1.19:envoy_v3_api_field_config.cluster.v3.Cluster.connect_timeout>`.
  • dns: changed apple resolver implementation to not reuse the UDS to the local DNS daemon.
  • dns cache: the new :ref:`dns_query_timeout <v1.19:envoy_v3_api_field_extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig.dns_query_timeout>` option has a default of 5s. See below for more information.
  • http: disable the integration between :ref:`ExtensionWithMatcher <v1.19:envoy_v3_api_msg_extensions.common.matching.v3.ExtensionWithMatcher>` and HTTP filters by default to reflect its experimental status. This feature can be enabled by setting envoy.reloadable_features.experimental_matching_api to true.
  • http: replaced setting envoy.reloadable_features.strict_1xx_and_204_response_headers with settings envoy.reloadable_features.require_strict_1xx_and_204_response_headers (require upstream 1xx or 204 responses to not have Transfer-Encoding or non-zero Content-Length headers) and envoy.reloadable_features.send_strict_1xx_and_204_response_headers (do not send 1xx or 204 responses with these headers). Both are true by default.
  • http: stop sending the transfer-encoding header for 304. This behavior can be temporarily reverted by setting envoy.reloadable_features.no_chunked_encoding_header_for_304 to false.
  • http: the behavior of the present_match in route header matcher changed. The value of present_match was ignored in the past. The new behavior is present_match is performed when the value is true. An absent match performed when the value is false. Please reference :ref:`present_match <envoy_v3_api_field_config.route.v3.HeaderMatcher.present_match>`.
  • listener: respect the :ref:`connection balance config <v1.19:envoy_v3_api_field_config.listener.v3.Listener.connection_balance_config>` defined within the listener where the sockets are redirected to. Clear that field to restore the previous behavior.
  • listener: when balancing across active listeners and wildcard matching is used, the behavior has been changed to return the listener that matches the IP family type associated with the listener's socket address. Any unexpected behavioral changes can be reverted by setting runtime guard envoy.reloadable_features.listener_wildcard_match_ip_family to false.
  • tcp: switched to the new connection pool by default. Any unexpected behavioral changes can be reverted by setting runtime guard envoy.reloadable_features.new_tcp_connection_pool to false.
  • udp: limit each UDP listener to read maximum 6000 packets per event loop. This behavior can be temporarily reverted by setting envoy.reloadable_features.udp_per_event_loop_read_limit to false.

Bug Fixes

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

  • aws_lambda: if payload_passthrough is set to false, the downstream response content-type header will now be set from the content-type entry in the JSON response's headers map, if present.
  • cluster: fixed the :ref:`cluster stats <v1.19:config_cluster_manager_cluster_stats_request_response_sizes>` histograms by moving the accounting into the router filter. This means that we now properly compute the number of bytes sent as well as handling retries which were previously ignored.
  • hot_restart: fix double counting of server.seconds_until_first_ocsp_response_expiring and server.days_until_first_cert_expiring during hot-restart. This stat was only incorrect until the parent process terminated.
  • http: fix erroneous handling of invalid nghttp2 frames with the NGHTTP2_ERR_REFUSED_STREAM error. Prior to the fix, Envoy would close the entire connection when nghttp2 triggered the invalid frame callback for the said error. The fix will cause Envoy to terminate just the refused stream and retain the connection. This behavior can be temporarily reverted by setting the envoy.reloadable_features.http2_consume_stream_refused_errors runtime guard to false.
  • http: port stripping now works for CONNECT requests, though the port will be restored if the CONNECT request is sent upstream. This behavior can be temporarily reverted by setting envoy.reloadable_features.strip_port_from_connect to false.
  • jwt_authn: unauthorized responses now correctly include a www-authenticate header.
  • listener: fix a crash which could happen when a filter chain only listener update is followed by listener removal or a full listener update.
  • validation: fix an issue that causes TAP sockets to panic during config validation mode.
  • xray: fix the default sampling rate for AWS X-Ray tracer extension to be 5% as opposed to 50%.
  • zipkin: fix timestamp serialization in annotations. A prior bug fix exposed an issue with timestamps being serialized as strings.

Removed Config or Runtime

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

  • event: removed envoy.reloadable_features.activate_timers_next_event_loop runtime guard and legacy code path.
  • gzip: removed legacy HTTP Gzip filter and runtime guard envoy.deprecated_features.allow_deprecated_gzip_http_filter.
  • http: removed envoy.reloadable_features.allow_500_after_100 runtime guard and the legacy code path.
  • http: removed envoy.reloadable_features.always_apply_route_header_rules runtime guard and legacy code path.
  • http: removed envoy.reloadable_features.hcm_stream_error_on_invalid_message for disabling closing HTTP/1.1 connections on error. Connection-closing can still be disabled by setting the HTTP/1 configuration :ref:`override_stream_error_on_invalid_http_message <v1.19:envoy_v3_api_field_config.core.v3.Http1ProtocolOptions.override_stream_error_on_invalid_http_message>`.
  • http: removed envoy.reloadable_features.http_set_copy_replace_all_headers runtime guard and legacy code paths.
  • http: removed envoy.reloadable_features.overload_manager_disable_keepalive_drain_http2; Envoy will now always send GOAWAY to HTTP2 downstreams when the :ref:`disable_keepalive <v1.19:config_overload_manager_overload_actions>` overload action is active.
  • http: removed envoy.reloadable_features.http_match_on_all_headers runtime guard and legacy code paths.
  • http: removed envoy.reloadable_features.unify_grpc_handling runtime guard and legacy code paths.
  • tls: removed envoy.reloadable_features.tls_use_io_handle_bio runtime guard and legacy code path.

New Features

Deprecated