FYI: New codec implementations

24 views
Skip to first unread message

Asra Ali

unread,
Aug 12, 2020, 1:32:32 PM8/12/20
to envoy-a...@googlegroups.com
Hello Envoy Community!

As a heads up, with #12149 landed, Envoy has split HTTP/1.1 and HTTP/2 codec implementations to a new and legacy version. PRs #11778 and #11575 remove the use of C++ exceptions for control flow in the new codec versions and preserve all other functional behavior. You can see more about the design in the tracking issue here #10878.

By default, Envoy will use the old legacy codecs because this is a change in high-risk code.  You may override the codec behavior and test the new implementation at runtime using the instructions in the release notes. Crashes whose stack trace points to codec implementations may be related to the new codec implementation. 

Developers who make functional changes to the new codecs should also duplicate the changes to the legacy implementations (`codec_impl_legacy.(h/cc)`). Unit tests are parametrized over both codec implementations and integration tests will also run with new codecs during CI in `compile_time_options`.

The split implementations with the runtime fallback will last 4-6 weeks while the changes to remove exceptions are merged and the new codecs are tested in production. The runtime default will be switched to the new codecs after this period.

If you have any issues in production that may be a potential security issue (e.g. a crash), please report the issue to envoy-s...@googlegroups.com. Otherwise, please file a GitHub issue.

Thanks, 

Asra and Yan


Reply all
Reply to author
Forward
0 new messages