Fetch .wasm from remote URI without depending on Listener.#204
Fetch .wasm from remote URI without depending on Listener.#204istio-testing merged 2 commits intoistio:masterfrom
Conversation
Signed-off-by: John Plevyak <[email protected]>
|
Native question: what is the listener in title? There is no listener either in red or green diff |
| } | ||
|
|
||
| #if 0 | ||
| TEST_P(WasmFilterConfigTest, YamlLoadFromRemoteWASMFailOnUncachedThenSucceed) { |
There was a problem hiding this comment.
The tests are mocks, so they are heavily dependent on the details of the implementation. They also didn't actually provide any confidence since the tests passed and the implementation failed on integration because, well mocks are not real tests IMO. The integration test gives more confidence than these tests. That said I am updating them in envoy-wasm and will backport them here when I get them done.
There was a problem hiding this comment.
The tests are working. Reactivated them.
Signed-off-by: John Plevyak <[email protected]>
|
/test test-tsan_envoy |
|
/retest |
|
It seems that there is a real data race, so retesting won't make it go away: |
|
Well that is going to be a bit problematic: libevent/libevent#779 |
|
Looks good now. |
* Fetch .wasm from remote URI without depending on Listener. Signed-off-by: John Plevyak <[email protected]> * Reactivate tests. Signed-off-by: John Plevyak <[email protected]>
* Fetch .wasm from remote URI without depending on Listener. (#204) * Fetch .wasm from remote URI without depending on Listener. Signed-off-by: John Plevyak <[email protected]> * Reactivate tests. Signed-off-by: John Plevyak <[email protected]> * Add stats for wasm remote load fetch and cache. (#207) * Add stats for wasm remote load fetch and cache. Signed-off-by: John Plevyak <[email protected]> * Address comments and ensure that the stats have the same lifetime as the cache. Signed-off-by: John Plevyak <[email protected]> * Address comments. Signed-off-by: John Plevyak <[email protected]> * Address ASAN issue. Signed-off-by: John Plevyak <[email protected]> * Mess around with the tests some more. Signed-off-by: John Plevyak <[email protected]> Co-authored-by: John Plevyak <[email protected]>
* doc: version 1.12.7 Signed-off-by: Yuchen Dai <[email protected]> * Preserve LWS from the middle of HTTP1 header values that requ… (envoyproxy#12319) * [http1] Preserve LWS from the middle of HTTP1 header values that require multiple dispatch calls to process (envoyproxy#10886) Correctly preserve linear whitespace in the middle of HTTP1 header values. The fix in 6a95a21 trimmed away both leading and trailing whitespace when accepting header value fragments which can result in inner LWS in header values being stripped away if the LWS lands at the beginning or end of a buffer slice. Also various fix to allow build on clang-10 Signed-off-by: Antonio Vicente <[email protected]> Signed-off-by: Yuchen Dai <[email protected]> * http: header map security fixes for duplicate headers (#197) (#204) Previously header matching did not match on all headers for non-inline headers. This patch changes the default behavior to always logically match on all headers. Multiple individual headers will be logically concatenated with ',' similar to what is done with inline headers. This makes the behavior effectively consistent. This behavior can be temporary reverted by setting the runtime value "envoy.reloadable_features.header_match_on_all_headers" to "false". Targeted fixes have been additionally performed on the following extensions which make them consider all duplicate headers by default as a comma concatenated list: 1) Any extension using CEL matching on headers. 2) The header to metadata filter. 3) The JWT filter. 4) The Lua filter. Like primary header matching used in routing, RBAC, etc. this behavior can be disabled by setting the runtime value "envoy.reloadable_features.header_match_on_all_headers" to false. Finally, the setCopy() header map API previously only set the first header in the case of duplicate non-inline headers. setCopy() now behaves similiarly to the other set*() APIs and replaces all found headers with a single value. This may have had security implications in the extauth filter which uses this API. This behavior can be disabled by setting the runtime value "envoy.reloadable_features.http_set_copy_replace_all_headers" to false. Fixes https://github.com/envoyproxy/envoy-setec/issues/188 Signed-off-by: Matt Klein <[email protected]> Signed-off-by: Yuchen Dai <[email protected]> * fix wasm compile Signed-off-by: Yuchen Dai <[email protected]> * fix typo Signed-off-by: Yuchen Dai <[email protected]>
* doc: version 1.12.7 Signed-off-by: Yuchen Dai <[email protected]> * Preserve LWS from the middle of HTTP1 header values that requ… (envoyproxy#12319) * [http1] Preserve LWS from the middle of HTTP1 header values that require multiple dispatch calls to process (envoyproxy#10886) Correctly preserve linear whitespace in the middle of HTTP1 header values. The fix in 6a95a21 trimmed away both leading and trailing whitespace when accepting header value fragments which can result in inner LWS in header values being stripped away if the LWS lands at the beginning or end of a buffer slice. Also various fix to allow build on clang-10 Signed-off-by: Antonio Vicente <[email protected]> Signed-off-by: Yuchen Dai <[email protected]> * http: header map security fixes for duplicate headers (#197) (#204) Previously header matching did not match on all headers for non-inline headers. This patch changes the default behavior to always logically match on all headers. Multiple individual headers will be logically concatenated with ',' similar to what is done with inline headers. This makes the behavior effectively consistent. This behavior can be temporary reverted by setting the runtime value "envoy.reloadable_features.header_match_on_all_headers" to "false". Targeted fixes have been additionally performed on the following extensions which make them consider all duplicate headers by default as a comma concatenated list: 1) Any extension using CEL matching on headers. 2) The header to metadata filter. 3) The JWT filter. 4) The Lua filter. Like primary header matching used in routing, RBAC, etc. this behavior can be disabled by setting the runtime value "envoy.reloadable_features.header_match_on_all_headers" to false. Finally, the setCopy() header map API previously only set the first header in the case of duplicate non-inline headers. setCopy() now behaves similiarly to the other set*() APIs and replaces all found headers with a single value. This may have had security implications in the extauth filter which uses this API. This behavior can be disabled by setting the runtime value "envoy.reloadable_features.http_set_copy_replace_all_headers" to false. Fixes https://github.com/envoyproxy/envoy-setec/issues/188 Signed-off-by: Matt Klein <[email protected]> Signed-off-by: Yuchen Dai <[email protected]> * fix wasm compile Signed-off-by: Yuchen Dai <[email protected]> * fix typo Signed-off-by: Yuchen Dai <[email protected]> Co-authored-by: Yuchen Dai <[email protected]>
Signed-off-by: John Plevyak [email protected]