Update wasmtime (v24.0.0) - #406

Merged
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime
Sep 4, 2024
Merged

Update wasmtime (v24.0.0)#406
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime

Conversation

@keithmattix

Copy link
Copy Markdown
Contributor

Builds on top of #404 and #402

@martijneken

martijneken commented Aug 11, 2024

Copy link
Copy Markdown
Contributor

Ran CI. Looks like:

  • bazel/dependencies.bzl needs formatting
  • diffs in cargo vendor:
    • run bazelisk run //bazel/cargo/wasmsign:crates_vendor -- --repin
    • run bazelisk run //bazel/cargo/wasmtime:crates_vendor -- --repin
    • commit above changes
  • CI unhappy (rust panics) with --define engine=v8 and --define engine=wasmtime (might be fixed by above)

Comment threadbazel/external/rules_rust.patch
Comment threadbazel/dependencies.bzl Outdated
@martijneken

martijneken commented Aug 12, 2024

Copy link
Copy Markdown
Contributor

Looks like buildifier and wasmtime remain. Wasmtime build error:

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
ld.lld: error: undefined symbol: wasm_module_new
>>> referenced by wasmtime.cc
>>> wasmtime.o:(proxy_wasm::wasmtime::Wasmtime::load(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::unordered_map<unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&)) in archive bazel-out/k8-fastbuild/bin/libwasmtime_lib.a

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

@PiotrSikora

Copy link
Copy Markdown
Member

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

wasm-c-api is still vendored in Wasmtime (wheras previously it was imported as git submodule).

Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Comment threadcompile_commands.json Outdated
Comment thread.vscode/settings.json Outdated
@keithmattix

keithmattix commented Aug 13, 2024

Copy link
Copy Markdown
ContributorAuthor

Looks like CI is pretty much passing except for buildifier (I have the fix staged locally) and this random windows failure. I wonder if it's related to #368 (comment)

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Getting closer....I tried to repro the Windows issue on a local machine but no dice (rust-lld isn't happy for whatever reason). If anyone has a clue what's happening please let me know. I should also mention that Windows isn't actively supported in Envoy anymore; not sure what proxy-wasm's stance is on Windows

image

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like rules_rust no longer aims to support Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms. The current Windows failure seems to be a weird interaction with the Windows linker and path escaping: all of the file paths be linked use a combination of backslashes and escaped forward slashes

bazel-out/x64_windows-opt-exec-2B5CBBC6/bin/external/cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.[0-9].rcgu.o

but the final error has all forward slashes

note: LINK : fatal error LNK1181: cannot open input file 'bazel-out\x64_windows-opt-exec-2B5CBBC6\bin\external\cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.0.rcgu.o'

@PiotrSikora@martijneken@mpwarres can you advise on the support goals for Wasmtime windows in this repo? With Envoy and rules_rust turning down CI, does it make sense to do the same here?

@martijneken

martijneken commented Aug 14, 2024

Copy link
Copy Markdown
Contributor

I don't feel strongly about supporting Wasmtime for Windows, since our dependencies don't support it. Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)? @PiotrSikora WDYT

@PiotrSikora

Copy link
Copy Markdown
Member

Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)?

There is a big gap here - all Wasm engines other than Wasmtime. Notably, Wasmtime on Windows is the only build on the CI executing real WasmVM code paths (because it is the fastest to compile), so it would be helpful to add tests using another Wasm engine on Windows, before removing Wasmtime on Windows... assuming that you want to support it at all.

cc @shukitchan for ATS, which relies on proxy-wasm-cpp-host.

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

If any other proxy implementations have windows expertise, I'd appreciate the help/guidance!

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

Comment thread.gitignore Outdated
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

I can give it a try

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

#410 opened. @mpwarres@PiotrSikora@martijneken can one of you kick off CI?

@PiotrSikora

Copy link
Copy Markdown
Member

Could you rebase this on top of main branch and update Wasmtime to v24.0.0? Thanks!

martijnekenand others added 5 commits August 21, 2024 13:26
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
@keithmattixkeithmattix changed the title Update wasmtime and RustUpdate wasmtime (v24.0.0)Aug 21, 2024
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

Comment threadbazel/external/rules_rust.patch
@PiotrSikora

PiotrSikora commented Aug 22, 2024

Copy link
Copy Markdown
Member

@PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

I think it would be useful to have something working, even if it's not Wasmtime, but I don't have a horse in this race, so the final decision is up to @mpwarres and @martijneken who are the current maintainers.

@mpwarres

Copy link
Copy Markdown
Contributor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

My individual opinion is that the same considerations that led Bazel and Envoy to drop support for Windows CI (insufficient Windows expertise + lack of resources to track down Windows issues) apply here as well, plus the way that we build Wasmtime depends on rules_rust which no longer supports Windows, so we'd be on shaky ground. I'm in favor of dropping the Wasmtime Windows CI action, but keeping NullVm as a safeguard against total bitrot on Windows, leaving the option of reintroducing support in the future should circumstances change. @martijneken WDYT?

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like WAMR on windows still passes in CI (confirmed in #413). Can I get some reviews on that and I'll rebase once that merges

@PiotrSikoraPiotrSikora mentioned this pull request Aug 23, 2024
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Comment threadbazel/cargo/wasmtime/Cargo.toml
Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Comment threadbazel/cargo/wasmtime/Cargo.toml
@keithmattix

keithmattix commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@mpwarres@martijneken is this in a good enough state to merge?

@martijnekenmartijneken left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the wasmtime-windows CI action as required. Should be good to merge now.

@martijneken
martijneken merged commit 21a5b08 into proxy-wasm:mainSep 4, 2024
Comment threadbazel/external/wasm-c-api.BUILD
@keithmattix
keithmattix deleted the update-wasmtime branch September 26, 2024 17:41
johnlanni pushed a commit to higress-group/proxy-wasm-cpp-host that referenced this pull request Jan 26, 2026
… behavior (proxy-wasm#434) (#11)
* fix: CI branch name master -> main (proxy-wasm#398)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Bump Abseil to fix Linux build issues (proxy-wasm#400)
Bump Abseil to fix Linux build issues
Pick up this fix: abseil/abseil-cpp#1187
Bump past Envoy to pick up another fix found in fuzz tests:
proxy-wasm#399 (comment)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Update cargo-raze -> crate_universe (proxy-wasm#399)
- Updated platforms for crate_universe compatibility
- Supports upgrade to wasmsign2
- Includes workaround for Windows path length issue
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Move from unavailable macos-11 to macos-13 (proxy-wasm#401)
See: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
This does not fixproxy-wasm#384, but does resurface those errors.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump Bazel from 5.2.0 to 6.5.0 (proxy-wasm#402)
Bump Bazel from 5.2.0 to 6.5.0
This breaks the s390x build which relied on an external Docker image. I made some strides in fixing s390x, but it's not yet working. Deferred to proxy-wasm#405.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump rules_python and rules_fuzzing (proxy-wasm#404)
Upgrade rules_python (0.34.0) and rules_fuzzing (0.5.2)
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update CI to use Ubuntu 22.04 / clang 14 (proxy-wasm#408)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update rules_rust to v0.42.1 (with Rust v1.77.2). (proxy-wasm#410)
* Update rules_rust
* Update rust and vendor
* rust_oom -> rg_oom
* Change rust version
---------
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* Update wasmtime (v24.0.0) (proxy-wasm#406)
Removes Wasmtime + Windows CI because rules_rust has recently dropped Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* fix: Upgrade deprecated artifact upload/download handlers (proxy-wasm#415)
Seen on proxy-wasm#380 CI:
Error: This request has been automatically failed because it uses a deprecated version of `actions/upload-artifact: v2`. Learn more: https://github.blog/changelog/2024-02-13-deprecation-notice-v1-and-v2-of-the-artifact-actions/
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* bump wamr to 2.1.1 and able to consume precompiled content (proxy-wasm#380)
- skip leading paddings in .aot section
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
* compdb add the compdb support to the proxy_wasm_cpp_host (proxy-wasm#419)
* compdb add the compdb support to the proxy_wasm_cpp_host
Signed-off-by: wangbaiping <wbphub@gmail.com>
* Fix references to prefix_wasm_api (proxy-wasm#420)
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* feat(go-sdk): add wasi hostcalls used by the Go SDK (proxy-wasm#427)
The full Go sdk imports hostcalls not currently exported to the wasm
module, making the wasm module fail on instantiation. Per discussion
with the Go core maintainers, these functions do not need to be
implemented, but they must be present.
Signed-off-by: Matt Leon <mattleon@google.com>
* chore: workflow runner fixes (proxy-wasm#436)
Assorted changes to get workflows working again:
- Update format workflows to use ubuntu-22.04
- Update windows-2019 to windows-2022 and add a missing <string> include needed to
build with that
- Enable manual triggering of workflows
Fixesproxy-wasm#435
---------
Signed-off-by: Michael Warres <mpw@google.com>
* feat: add knob to customise on{Request,Response}Headers StopIteration behavior (proxy-wasm#434)
Add protected ContextBase::allow_on_headers_stop_iteration_ field that can be used by host implementations to control whether or not ContextBase propagates FilterHeaderStatus::StopIteration returned by onRequestHeaders() or onResponseHeaders() without modification.
Follow-on envoyproxy/envoy#40213 adds an option in Envoy WasmFilter PluginConfig that sets the value of this field.
For details, see [Envoy Wasm / Proxy-Wasm support for FilterHeadersStatus::StopIteration](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?usp=sharing). This PR is one part of implementing [Option B: WasmFilter config knob](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?tab=t.0#bookmark=id.5wxldlapsp54).
Note that default behavior of proxy-wasm-cpp-host and ContextBase is unchanged.
---------
Signed-off-by: Michael Warres <mpw@google.com>
---------
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
Signed-off-by: wangbaiping <wbphub@gmail.com>
Signed-off-by: Matt Leon <mattleon@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Co-authored-by: martijneken <mstevenson@google.com>
Co-authored-by: Keith Mattix II <keithmattix2@gmail.com>
Co-authored-by: Keith Mattix II <keithmattix@microsoft.com>
Co-authored-by: liang.he <liang.he@intel.com>
Co-authored-by: code <wbphub@gmail.com>
Co-authored-by: Matt Leon <ml@mattleon.com>
Co-authored-by: Michael Warres <mpw@google.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@keithmattix@martijneken@PiotrSikora@mpwarres
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Update wasmtime (v24.0.0) - #406

Merged
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime
Sep 4, 2024
Merged

Update wasmtime (v24.0.0)#406
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime

Conversation

@keithmattix

Copy link
Copy Markdown
Contributor

Builds on top of #404 and #402

@martijneken

martijneken commented Aug 11, 2024

Copy link
Copy Markdown
Contributor

Ran CI. Looks like:

  • bazel/dependencies.bzl needs formatting
  • diffs in cargo vendor:
    • run bazelisk run //bazel/cargo/wasmsign:crates_vendor -- --repin
    • run bazelisk run //bazel/cargo/wasmtime:crates_vendor -- --repin
    • commit above changes
  • CI unhappy (rust panics) with --define engine=v8 and --define engine=wasmtime (might be fixed by above)

Comment threadbazel/external/rules_rust.patch
Comment threadbazel/dependencies.bzl Outdated
@martijneken

martijneken commented Aug 12, 2024

Copy link
Copy Markdown
Contributor

Looks like buildifier and wasmtime remain. Wasmtime build error:

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
ld.lld: error: undefined symbol: wasm_module_new
>>> referenced by wasmtime.cc
>>> wasmtime.o:(proxy_wasm::wasmtime::Wasmtime::load(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::unordered_map<unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&)) in archive bazel-out/k8-fastbuild/bin/libwasmtime_lib.a

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

@PiotrSikora

Copy link
Copy Markdown
Member

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

wasm-c-api is still vendored in Wasmtime (wheras previously it was imported as git submodule).

Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Comment threadcompile_commands.json Outdated
Comment thread.vscode/settings.json Outdated
@keithmattix

keithmattix commented Aug 13, 2024

Copy link
Copy Markdown
ContributorAuthor

Looks like CI is pretty much passing except for buildifier (I have the fix staged locally) and this random windows failure. I wonder if it's related to #368 (comment)

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Getting closer....I tried to repro the Windows issue on a local machine but no dice (rust-lld isn't happy for whatever reason). If anyone has a clue what's happening please let me know. I should also mention that Windows isn't actively supported in Envoy anymore; not sure what proxy-wasm's stance is on Windows

image

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like rules_rust no longer aims to support Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms. The current Windows failure seems to be a weird interaction with the Windows linker and path escaping: all of the file paths be linked use a combination of backslashes and escaped forward slashes

bazel-out/x64_windows-opt-exec-2B5CBBC6/bin/external/cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.[0-9].rcgu.o

but the final error has all forward slashes

note: LINK : fatal error LNK1181: cannot open input file 'bazel-out\x64_windows-opt-exec-2B5CBBC6\bin\external\cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.0.rcgu.o'

@PiotrSikora@martijneken@mpwarres can you advise on the support goals for Wasmtime windows in this repo? With Envoy and rules_rust turning down CI, does it make sense to do the same here?

@martijneken

martijneken commented Aug 14, 2024

Copy link
Copy Markdown
Contributor

I don't feel strongly about supporting Wasmtime for Windows, since our dependencies don't support it. Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)? @PiotrSikora WDYT

@PiotrSikora

Copy link
Copy Markdown
Member

Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)?

There is a big gap here - all Wasm engines other than Wasmtime. Notably, Wasmtime on Windows is the only build on the CI executing real WasmVM code paths (because it is the fastest to compile), so it would be helpful to add tests using another Wasm engine on Windows, before removing Wasmtime on Windows... assuming that you want to support it at all.

cc @shukitchan for ATS, which relies on proxy-wasm-cpp-host.

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

If any other proxy implementations have windows expertise, I'd appreciate the help/guidance!

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

Comment thread.gitignore Outdated
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

I can give it a try

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

#410 opened. @mpwarres@PiotrSikora@martijneken can one of you kick off CI?

@PiotrSikora

Copy link
Copy Markdown
Member

Could you rebase this on top of main branch and update Wasmtime to v24.0.0? Thanks!

martijnekenand others added 5 commits August 21, 2024 13:26
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
@keithmattixkeithmattix changed the title Update wasmtime and RustUpdate wasmtime (v24.0.0)Aug 21, 2024
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

Comment threadbazel/external/rules_rust.patch
@PiotrSikora

PiotrSikora commented Aug 22, 2024

Copy link
Copy Markdown
Member

@PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

I think it would be useful to have something working, even if it's not Wasmtime, but I don't have a horse in this race, so the final decision is up to @mpwarres and @martijneken who are the current maintainers.

@mpwarres

Copy link
Copy Markdown
Contributor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

My individual opinion is that the same considerations that led Bazel and Envoy to drop support for Windows CI (insufficient Windows expertise + lack of resources to track down Windows issues) apply here as well, plus the way that we build Wasmtime depends on rules_rust which no longer supports Windows, so we'd be on shaky ground. I'm in favor of dropping the Wasmtime Windows CI action, but keeping NullVm as a safeguard against total bitrot on Windows, leaving the option of reintroducing support in the future should circumstances change. @martijneken WDYT?

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like WAMR on windows still passes in CI (confirmed in #413). Can I get some reviews on that and I'll rebase once that merges

@PiotrSikoraPiotrSikora mentioned this pull request Aug 23, 2024
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Comment threadbazel/cargo/wasmtime/Cargo.toml
Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Comment threadbazel/cargo/wasmtime/Cargo.toml
@keithmattix

keithmattix commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@mpwarres@martijneken is this in a good enough state to merge?

@martijnekenmartijneken left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the wasmtime-windows CI action as required. Should be good to merge now.

@martijneken
martijneken merged commit 21a5b08 into proxy-wasm:mainSep 4, 2024
Comment threadbazel/external/wasm-c-api.BUILD
@keithmattix
keithmattix deleted the update-wasmtime branch September 26, 2024 17:41
johnlanni pushed a commit to higress-group/proxy-wasm-cpp-host that referenced this pull request Jan 26, 2026
… behavior (proxy-wasm#434) (#11)
* fix: CI branch name master -> main (proxy-wasm#398)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Bump Abseil to fix Linux build issues (proxy-wasm#400)
Bump Abseil to fix Linux build issues
Pick up this fix: abseil/abseil-cpp#1187
Bump past Envoy to pick up another fix found in fuzz tests:
proxy-wasm#399 (comment)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Update cargo-raze -> crate_universe (proxy-wasm#399)
- Updated platforms for crate_universe compatibility
- Supports upgrade to wasmsign2
- Includes workaround for Windows path length issue
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Move from unavailable macos-11 to macos-13 (proxy-wasm#401)
See: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
This does not fixproxy-wasm#384, but does resurface those errors.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump Bazel from 5.2.0 to 6.5.0 (proxy-wasm#402)
Bump Bazel from 5.2.0 to 6.5.0
This breaks the s390x build which relied on an external Docker image. I made some strides in fixing s390x, but it's not yet working. Deferred to proxy-wasm#405.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump rules_python and rules_fuzzing (proxy-wasm#404)
Upgrade rules_python (0.34.0) and rules_fuzzing (0.5.2)
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update CI to use Ubuntu 22.04 / clang 14 (proxy-wasm#408)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update rules_rust to v0.42.1 (with Rust v1.77.2). (proxy-wasm#410)
* Update rules_rust
* Update rust and vendor
* rust_oom -> rg_oom
* Change rust version
---------
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* Update wasmtime (v24.0.0) (proxy-wasm#406)
Removes Wasmtime + Windows CI because rules_rust has recently dropped Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* fix: Upgrade deprecated artifact upload/download handlers (proxy-wasm#415)
Seen on proxy-wasm#380 CI:
Error: This request has been automatically failed because it uses a deprecated version of `actions/upload-artifact: v2`. Learn more: https://github.blog/changelog/2024-02-13-deprecation-notice-v1-and-v2-of-the-artifact-actions/
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* bump wamr to 2.1.1 and able to consume precompiled content (proxy-wasm#380)
- skip leading paddings in .aot section
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
* compdb add the compdb support to the proxy_wasm_cpp_host (proxy-wasm#419)
* compdb add the compdb support to the proxy_wasm_cpp_host
Signed-off-by: wangbaiping <wbphub@gmail.com>
* Fix references to prefix_wasm_api (proxy-wasm#420)
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* feat(go-sdk): add wasi hostcalls used by the Go SDK (proxy-wasm#427)
The full Go sdk imports hostcalls not currently exported to the wasm
module, making the wasm module fail on instantiation. Per discussion
with the Go core maintainers, these functions do not need to be
implemented, but they must be present.
Signed-off-by: Matt Leon <mattleon@google.com>
* chore: workflow runner fixes (proxy-wasm#436)
Assorted changes to get workflows working again:
- Update format workflows to use ubuntu-22.04
- Update windows-2019 to windows-2022 and add a missing <string> include needed to
build with that
- Enable manual triggering of workflows
Fixesproxy-wasm#435
---------
Signed-off-by: Michael Warres <mpw@google.com>
* feat: add knob to customise on{Request,Response}Headers StopIteration behavior (proxy-wasm#434)
Add protected ContextBase::allow_on_headers_stop_iteration_ field that can be used by host implementations to control whether or not ContextBase propagates FilterHeaderStatus::StopIteration returned by onRequestHeaders() or onResponseHeaders() without modification.
Follow-on envoyproxy/envoy#40213 adds an option in Envoy WasmFilter PluginConfig that sets the value of this field.
For details, see [Envoy Wasm / Proxy-Wasm support for FilterHeadersStatus::StopIteration](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?usp=sharing). This PR is one part of implementing [Option B: WasmFilter config knob](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?tab=t.0#bookmark=id.5wxldlapsp54).
Note that default behavior of proxy-wasm-cpp-host and ContextBase is unchanged.
---------
Signed-off-by: Michael Warres <mpw@google.com>
---------
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
Signed-off-by: wangbaiping <wbphub@gmail.com>
Signed-off-by: Matt Leon <mattleon@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Co-authored-by: martijneken <mstevenson@google.com>
Co-authored-by: Keith Mattix II <keithmattix2@gmail.com>
Co-authored-by: Keith Mattix II <keithmattix@microsoft.com>
Co-authored-by: liang.he <liang.he@intel.com>
Co-authored-by: code <wbphub@gmail.com>
Co-authored-by: Matt Leon <ml@mattleon.com>
Co-authored-by: Michael Warres <mpw@google.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@keithmattix@martijneken@PiotrSikora@mpwarres
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Update wasmtime (v24.0.0) - #406

Merged
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime
Sep 4, 2024
Merged

Update wasmtime (v24.0.0)#406
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime

Conversation

@keithmattix

Copy link
Copy Markdown
Contributor

Builds on top of #404 and #402

@martijneken

martijneken commented Aug 11, 2024

Copy link
Copy Markdown
Contributor

Ran CI. Looks like:

  • bazel/dependencies.bzl needs formatting
  • diffs in cargo vendor:
    • run bazelisk run //bazel/cargo/wasmsign:crates_vendor -- --repin
    • run bazelisk run //bazel/cargo/wasmtime:crates_vendor -- --repin
    • commit above changes
  • CI unhappy (rust panics) with --define engine=v8 and --define engine=wasmtime (might be fixed by above)

Comment threadbazel/external/rules_rust.patch
Comment threadbazel/dependencies.bzl Outdated
@martijneken

martijneken commented Aug 12, 2024

Copy link
Copy Markdown
Contributor

Looks like buildifier and wasmtime remain. Wasmtime build error:

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
ld.lld: error: undefined symbol: wasm_module_new
>>> referenced by wasmtime.cc
>>> wasmtime.o:(proxy_wasm::wasmtime::Wasmtime::load(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::unordered_map<unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&)) in archive bazel-out/k8-fastbuild/bin/libwasmtime_lib.a

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

@PiotrSikora

Copy link
Copy Markdown
Member

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

wasm-c-api is still vendored in Wasmtime (wheras previously it was imported as git submodule).

Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Comment threadcompile_commands.json Outdated
Comment thread.vscode/settings.json Outdated
@keithmattix

keithmattix commented Aug 13, 2024

Copy link
Copy Markdown
ContributorAuthor

Looks like CI is pretty much passing except for buildifier (I have the fix staged locally) and this random windows failure. I wonder if it's related to #368 (comment)

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Getting closer....I tried to repro the Windows issue on a local machine but no dice (rust-lld isn't happy for whatever reason). If anyone has a clue what's happening please let me know. I should also mention that Windows isn't actively supported in Envoy anymore; not sure what proxy-wasm's stance is on Windows

image

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like rules_rust no longer aims to support Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms. The current Windows failure seems to be a weird interaction with the Windows linker and path escaping: all of the file paths be linked use a combination of backslashes and escaped forward slashes

bazel-out/x64_windows-opt-exec-2B5CBBC6/bin/external/cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.[0-9].rcgu.o

but the final error has all forward slashes

note: LINK : fatal error LNK1181: cannot open input file 'bazel-out\x64_windows-opt-exec-2B5CBBC6\bin\external\cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.0.rcgu.o'

@PiotrSikora@martijneken@mpwarres can you advise on the support goals for Wasmtime windows in this repo? With Envoy and rules_rust turning down CI, does it make sense to do the same here?

@martijneken

martijneken commented Aug 14, 2024

Copy link
Copy Markdown
Contributor

I don't feel strongly about supporting Wasmtime for Windows, since our dependencies don't support it. Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)? @PiotrSikora WDYT

@PiotrSikora

Copy link
Copy Markdown
Member

Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)?

There is a big gap here - all Wasm engines other than Wasmtime. Notably, Wasmtime on Windows is the only build on the CI executing real WasmVM code paths (because it is the fastest to compile), so it would be helpful to add tests using another Wasm engine on Windows, before removing Wasmtime on Windows... assuming that you want to support it at all.

cc @shukitchan for ATS, which relies on proxy-wasm-cpp-host.

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

If any other proxy implementations have windows expertise, I'd appreciate the help/guidance!

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

Comment thread.gitignore Outdated
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

I can give it a try

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

#410 opened. @mpwarres@PiotrSikora@martijneken can one of you kick off CI?

@PiotrSikora

Copy link
Copy Markdown
Member

Could you rebase this on top of main branch and update Wasmtime to v24.0.0? Thanks!

martijnekenand others added 5 commits August 21, 2024 13:26
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
@keithmattixkeithmattix changed the title Update wasmtime and RustUpdate wasmtime (v24.0.0)Aug 21, 2024
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

Comment threadbazel/external/rules_rust.patch
@PiotrSikora

PiotrSikora commented Aug 22, 2024

Copy link
Copy Markdown
Member

@PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

I think it would be useful to have something working, even if it's not Wasmtime, but I don't have a horse in this race, so the final decision is up to @mpwarres and @martijneken who are the current maintainers.

@mpwarres

Copy link
Copy Markdown
Contributor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

My individual opinion is that the same considerations that led Bazel and Envoy to drop support for Windows CI (insufficient Windows expertise + lack of resources to track down Windows issues) apply here as well, plus the way that we build Wasmtime depends on rules_rust which no longer supports Windows, so we'd be on shaky ground. I'm in favor of dropping the Wasmtime Windows CI action, but keeping NullVm as a safeguard against total bitrot on Windows, leaving the option of reintroducing support in the future should circumstances change. @martijneken WDYT?

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like WAMR on windows still passes in CI (confirmed in #413). Can I get some reviews on that and I'll rebase once that merges

@PiotrSikoraPiotrSikora mentioned this pull request Aug 23, 2024
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Comment threadbazel/cargo/wasmtime/Cargo.toml
Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Comment threadbazel/cargo/wasmtime/Cargo.toml
@keithmattix

keithmattix commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@mpwarres@martijneken is this in a good enough state to merge?

@martijnekenmartijneken left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the wasmtime-windows CI action as required. Should be good to merge now.

@martijneken
martijneken merged commit 21a5b08 into proxy-wasm:mainSep 4, 2024
Comment threadbazel/external/wasm-c-api.BUILD
@keithmattix
keithmattix deleted the update-wasmtime branch September 26, 2024 17:41
johnlanni pushed a commit to higress-group/proxy-wasm-cpp-host that referenced this pull request Jan 26, 2026
… behavior (proxy-wasm#434) (#11)
* fix: CI branch name master -> main (proxy-wasm#398)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Bump Abseil to fix Linux build issues (proxy-wasm#400)
Bump Abseil to fix Linux build issues
Pick up this fix: abseil/abseil-cpp#1187
Bump past Envoy to pick up another fix found in fuzz tests:
proxy-wasm#399 (comment)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Update cargo-raze -> crate_universe (proxy-wasm#399)
- Updated platforms for crate_universe compatibility
- Supports upgrade to wasmsign2
- Includes workaround for Windows path length issue
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Move from unavailable macos-11 to macos-13 (proxy-wasm#401)
See: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
This does not fixproxy-wasm#384, but does resurface those errors.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump Bazel from 5.2.0 to 6.5.0 (proxy-wasm#402)
Bump Bazel from 5.2.0 to 6.5.0
This breaks the s390x build which relied on an external Docker image. I made some strides in fixing s390x, but it's not yet working. Deferred to proxy-wasm#405.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump rules_python and rules_fuzzing (proxy-wasm#404)
Upgrade rules_python (0.34.0) and rules_fuzzing (0.5.2)
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update CI to use Ubuntu 22.04 / clang 14 (proxy-wasm#408)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update rules_rust to v0.42.1 (with Rust v1.77.2). (proxy-wasm#410)
* Update rules_rust
* Update rust and vendor
* rust_oom -> rg_oom
* Change rust version
---------
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* Update wasmtime (v24.0.0) (proxy-wasm#406)
Removes Wasmtime + Windows CI because rules_rust has recently dropped Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* fix: Upgrade deprecated artifact upload/download handlers (proxy-wasm#415)
Seen on proxy-wasm#380 CI:
Error: This request has been automatically failed because it uses a deprecated version of `actions/upload-artifact: v2`. Learn more: https://github.blog/changelog/2024-02-13-deprecation-notice-v1-and-v2-of-the-artifact-actions/
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* bump wamr to 2.1.1 and able to consume precompiled content (proxy-wasm#380)
- skip leading paddings in .aot section
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
* compdb add the compdb support to the proxy_wasm_cpp_host (proxy-wasm#419)
* compdb add the compdb support to the proxy_wasm_cpp_host
Signed-off-by: wangbaiping <wbphub@gmail.com>
* Fix references to prefix_wasm_api (proxy-wasm#420)
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* feat(go-sdk): add wasi hostcalls used by the Go SDK (proxy-wasm#427)
The full Go sdk imports hostcalls not currently exported to the wasm
module, making the wasm module fail on instantiation. Per discussion
with the Go core maintainers, these functions do not need to be
implemented, but they must be present.
Signed-off-by: Matt Leon <mattleon@google.com>
* chore: workflow runner fixes (proxy-wasm#436)
Assorted changes to get workflows working again:
- Update format workflows to use ubuntu-22.04
- Update windows-2019 to windows-2022 and add a missing <string> include needed to
build with that
- Enable manual triggering of workflows
Fixesproxy-wasm#435
---------
Signed-off-by: Michael Warres <mpw@google.com>
* feat: add knob to customise on{Request,Response}Headers StopIteration behavior (proxy-wasm#434)
Add protected ContextBase::allow_on_headers_stop_iteration_ field that can be used by host implementations to control whether or not ContextBase propagates FilterHeaderStatus::StopIteration returned by onRequestHeaders() or onResponseHeaders() without modification.
Follow-on envoyproxy/envoy#40213 adds an option in Envoy WasmFilter PluginConfig that sets the value of this field.
For details, see [Envoy Wasm / Proxy-Wasm support for FilterHeadersStatus::StopIteration](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?usp=sharing). This PR is one part of implementing [Option B: WasmFilter config knob](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?tab=t.0#bookmark=id.5wxldlapsp54).
Note that default behavior of proxy-wasm-cpp-host and ContextBase is unchanged.
---------
Signed-off-by: Michael Warres <mpw@google.com>
---------
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
Signed-off-by: wangbaiping <wbphub@gmail.com>
Signed-off-by: Matt Leon <mattleon@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Co-authored-by: martijneken <mstevenson@google.com>
Co-authored-by: Keith Mattix II <keithmattix2@gmail.com>
Co-authored-by: Keith Mattix II <keithmattix@microsoft.com>
Co-authored-by: liang.he <liang.he@intel.com>
Co-authored-by: code <wbphub@gmail.com>
Co-authored-by: Matt Leon <ml@mattleon.com>
Co-authored-by: Michael Warres <mpw@google.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@keithmattix@martijneken@PiotrSikora@mpwarres
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Update wasmtime (v24.0.0) - #406

Merged
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime
Sep 4, 2024
Merged

Update wasmtime (v24.0.0)#406
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime

Conversation

@keithmattix

Copy link
Copy Markdown
Contributor

Builds on top of #404 and #402

@martijneken

martijneken commented Aug 11, 2024

Copy link
Copy Markdown
Contributor

Ran CI. Looks like:

  • bazel/dependencies.bzl needs formatting
  • diffs in cargo vendor:
    • run bazelisk run //bazel/cargo/wasmsign:crates_vendor -- --repin
    • run bazelisk run //bazel/cargo/wasmtime:crates_vendor -- --repin
    • commit above changes
  • CI unhappy (rust panics) with --define engine=v8 and --define engine=wasmtime (might be fixed by above)

Comment threadbazel/external/rules_rust.patch
Comment threadbazel/dependencies.bzl Outdated
@martijneken

martijneken commented Aug 12, 2024

Copy link
Copy Markdown
Contributor

Looks like buildifier and wasmtime remain. Wasmtime build error:

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
ld.lld: error: undefined symbol: wasm_module_new
>>> referenced by wasmtime.cc
>>> wasmtime.o:(proxy_wasm::wasmtime::Wasmtime::load(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::unordered_map<unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&)) in archive bazel-out/k8-fastbuild/bin/libwasmtime_lib.a

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

@PiotrSikora

Copy link
Copy Markdown
Member

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

wasm-c-api is still vendored in Wasmtime (wheras previously it was imported as git submodule).

Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Comment threadcompile_commands.json Outdated
Comment thread.vscode/settings.json Outdated
@keithmattix

keithmattix commented Aug 13, 2024

Copy link
Copy Markdown
ContributorAuthor

Looks like CI is pretty much passing except for buildifier (I have the fix staged locally) and this random windows failure. I wonder if it's related to #368 (comment)

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Getting closer....I tried to repro the Windows issue on a local machine but no dice (rust-lld isn't happy for whatever reason). If anyone has a clue what's happening please let me know. I should also mention that Windows isn't actively supported in Envoy anymore; not sure what proxy-wasm's stance is on Windows

image

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like rules_rust no longer aims to support Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms. The current Windows failure seems to be a weird interaction with the Windows linker and path escaping: all of the file paths be linked use a combination of backslashes and escaped forward slashes

bazel-out/x64_windows-opt-exec-2B5CBBC6/bin/external/cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.[0-9].rcgu.o

but the final error has all forward slashes

note: LINK : fatal error LNK1181: cannot open input file 'bazel-out\x64_windows-opt-exec-2B5CBBC6\bin\external\cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.0.rcgu.o'

@PiotrSikora@martijneken@mpwarres can you advise on the support goals for Wasmtime windows in this repo? With Envoy and rules_rust turning down CI, does it make sense to do the same here?

@martijneken

martijneken commented Aug 14, 2024

Copy link
Copy Markdown
Contributor

I don't feel strongly about supporting Wasmtime for Windows, since our dependencies don't support it. Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)? @PiotrSikora WDYT

@PiotrSikora

Copy link
Copy Markdown
Member

Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)?

There is a big gap here - all Wasm engines other than Wasmtime. Notably, Wasmtime on Windows is the only build on the CI executing real WasmVM code paths (because it is the fastest to compile), so it would be helpful to add tests using another Wasm engine on Windows, before removing Wasmtime on Windows... assuming that you want to support it at all.

cc @shukitchan for ATS, which relies on proxy-wasm-cpp-host.

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

If any other proxy implementations have windows expertise, I'd appreciate the help/guidance!

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

Comment thread.gitignore Outdated
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

I can give it a try

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

#410 opened. @mpwarres@PiotrSikora@martijneken can one of you kick off CI?

@PiotrSikora

Copy link
Copy Markdown
Member

Could you rebase this on top of main branch and update Wasmtime to v24.0.0? Thanks!

martijnekenand others added 5 commits August 21, 2024 13:26
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
@keithmattixkeithmattix changed the title Update wasmtime and RustUpdate wasmtime (v24.0.0)Aug 21, 2024
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

Comment threadbazel/external/rules_rust.patch
@PiotrSikora

PiotrSikora commented Aug 22, 2024

Copy link
Copy Markdown
Member

@PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

I think it would be useful to have something working, even if it's not Wasmtime, but I don't have a horse in this race, so the final decision is up to @mpwarres and @martijneken who are the current maintainers.

@mpwarres

Copy link
Copy Markdown
Contributor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

My individual opinion is that the same considerations that led Bazel and Envoy to drop support for Windows CI (insufficient Windows expertise + lack of resources to track down Windows issues) apply here as well, plus the way that we build Wasmtime depends on rules_rust which no longer supports Windows, so we'd be on shaky ground. I'm in favor of dropping the Wasmtime Windows CI action, but keeping NullVm as a safeguard against total bitrot on Windows, leaving the option of reintroducing support in the future should circumstances change. @martijneken WDYT?

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like WAMR on windows still passes in CI (confirmed in #413). Can I get some reviews on that and I'll rebase once that merges

@PiotrSikoraPiotrSikora mentioned this pull request Aug 23, 2024
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Comment threadbazel/cargo/wasmtime/Cargo.toml
Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Comment threadbazel/cargo/wasmtime/Cargo.toml
@keithmattix

keithmattix commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@mpwarres@martijneken is this in a good enough state to merge?

@martijnekenmartijneken left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the wasmtime-windows CI action as required. Should be good to merge now.

@martijneken
martijneken merged commit 21a5b08 into proxy-wasm:mainSep 4, 2024
Comment threadbazel/external/wasm-c-api.BUILD
@keithmattix
keithmattix deleted the update-wasmtime branch September 26, 2024 17:41
johnlanni pushed a commit to higress-group/proxy-wasm-cpp-host that referenced this pull request Jan 26, 2026
… behavior (proxy-wasm#434) (#11)
* fix: CI branch name master -> main (proxy-wasm#398)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Bump Abseil to fix Linux build issues (proxy-wasm#400)
Bump Abseil to fix Linux build issues
Pick up this fix: abseil/abseil-cpp#1187
Bump past Envoy to pick up another fix found in fuzz tests:
proxy-wasm#399 (comment)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Update cargo-raze -> crate_universe (proxy-wasm#399)
- Updated platforms for crate_universe compatibility
- Supports upgrade to wasmsign2
- Includes workaround for Windows path length issue
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Move from unavailable macos-11 to macos-13 (proxy-wasm#401)
See: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
This does not fixproxy-wasm#384, but does resurface those errors.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump Bazel from 5.2.0 to 6.5.0 (proxy-wasm#402)
Bump Bazel from 5.2.0 to 6.5.0
This breaks the s390x build which relied on an external Docker image. I made some strides in fixing s390x, but it's not yet working. Deferred to proxy-wasm#405.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump rules_python and rules_fuzzing (proxy-wasm#404)
Upgrade rules_python (0.34.0) and rules_fuzzing (0.5.2)
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update CI to use Ubuntu 22.04 / clang 14 (proxy-wasm#408)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update rules_rust to v0.42.1 (with Rust v1.77.2). (proxy-wasm#410)
* Update rules_rust
* Update rust and vendor
* rust_oom -> rg_oom
* Change rust version
---------
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* Update wasmtime (v24.0.0) (proxy-wasm#406)
Removes Wasmtime + Windows CI because rules_rust has recently dropped Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* fix: Upgrade deprecated artifact upload/download handlers (proxy-wasm#415)
Seen on proxy-wasm#380 CI:
Error: This request has been automatically failed because it uses a deprecated version of `actions/upload-artifact: v2`. Learn more: https://github.blog/changelog/2024-02-13-deprecation-notice-v1-and-v2-of-the-artifact-actions/
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* bump wamr to 2.1.1 and able to consume precompiled content (proxy-wasm#380)
- skip leading paddings in .aot section
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
* compdb add the compdb support to the proxy_wasm_cpp_host (proxy-wasm#419)
* compdb add the compdb support to the proxy_wasm_cpp_host
Signed-off-by: wangbaiping <wbphub@gmail.com>
* Fix references to prefix_wasm_api (proxy-wasm#420)
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* feat(go-sdk): add wasi hostcalls used by the Go SDK (proxy-wasm#427)
The full Go sdk imports hostcalls not currently exported to the wasm
module, making the wasm module fail on instantiation. Per discussion
with the Go core maintainers, these functions do not need to be
implemented, but they must be present.
Signed-off-by: Matt Leon <mattleon@google.com>
* chore: workflow runner fixes (proxy-wasm#436)
Assorted changes to get workflows working again:
- Update format workflows to use ubuntu-22.04
- Update windows-2019 to windows-2022 and add a missing <string> include needed to
build with that
- Enable manual triggering of workflows
Fixesproxy-wasm#435
---------
Signed-off-by: Michael Warres <mpw@google.com>
* feat: add knob to customise on{Request,Response}Headers StopIteration behavior (proxy-wasm#434)
Add protected ContextBase::allow_on_headers_stop_iteration_ field that can be used by host implementations to control whether or not ContextBase propagates FilterHeaderStatus::StopIteration returned by onRequestHeaders() or onResponseHeaders() without modification.
Follow-on envoyproxy/envoy#40213 adds an option in Envoy WasmFilter PluginConfig that sets the value of this field.
For details, see [Envoy Wasm / Proxy-Wasm support for FilterHeadersStatus::StopIteration](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?usp=sharing). This PR is one part of implementing [Option B: WasmFilter config knob](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?tab=t.0#bookmark=id.5wxldlapsp54).
Note that default behavior of proxy-wasm-cpp-host and ContextBase is unchanged.
---------
Signed-off-by: Michael Warres <mpw@google.com>
---------
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
Signed-off-by: wangbaiping <wbphub@gmail.com>
Signed-off-by: Matt Leon <mattleon@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Co-authored-by: martijneken <mstevenson@google.com>
Co-authored-by: Keith Mattix II <keithmattix2@gmail.com>
Co-authored-by: Keith Mattix II <keithmattix@microsoft.com>
Co-authored-by: liang.he <liang.he@intel.com>
Co-authored-by: code <wbphub@gmail.com>
Co-authored-by: Matt Leon <ml@mattleon.com>
Co-authored-by: Michael Warres <mpw@google.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@keithmattix@martijneken@PiotrSikora@mpwarres
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Update wasmtime (v24.0.0) - #406

Merged
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime
Sep 4, 2024
Merged

Update wasmtime (v24.0.0)#406
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime

Conversation

@keithmattix

Copy link
Copy Markdown
Contributor

Builds on top of #404 and #402

@martijneken

martijneken commented Aug 11, 2024

Copy link
Copy Markdown
Contributor

Ran CI. Looks like:

  • bazel/dependencies.bzl needs formatting
  • diffs in cargo vendor:
    • run bazelisk run //bazel/cargo/wasmsign:crates_vendor -- --repin
    • run bazelisk run //bazel/cargo/wasmtime:crates_vendor -- --repin
    • commit above changes
  • CI unhappy (rust panics) with --define engine=v8 and --define engine=wasmtime (might be fixed by above)

Comment threadbazel/external/rules_rust.patch
Comment threadbazel/dependencies.bzl Outdated
@martijneken

martijneken commented Aug 12, 2024

Copy link
Copy Markdown
Contributor

Looks like buildifier and wasmtime remain. Wasmtime build error:

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
ld.lld: error: undefined symbol: wasm_module_new
>>> referenced by wasmtime.cc
>>> wasmtime.o:(proxy_wasm::wasmtime::Wasmtime::load(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::unordered_map<unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&)) in archive bazel-out/k8-fastbuild/bin/libwasmtime_lib.a

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

@PiotrSikora

Copy link
Copy Markdown
Member

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

wasm-c-api is still vendored in Wasmtime (wheras previously it was imported as git submodule).

Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Comment threadcompile_commands.json Outdated
Comment thread.vscode/settings.json Outdated
@keithmattix

keithmattix commented Aug 13, 2024

Copy link
Copy Markdown
ContributorAuthor

Looks like CI is pretty much passing except for buildifier (I have the fix staged locally) and this random windows failure. I wonder if it's related to #368 (comment)

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Getting closer....I tried to repro the Windows issue on a local machine but no dice (rust-lld isn't happy for whatever reason). If anyone has a clue what's happening please let me know. I should also mention that Windows isn't actively supported in Envoy anymore; not sure what proxy-wasm's stance is on Windows

image

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like rules_rust no longer aims to support Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms. The current Windows failure seems to be a weird interaction with the Windows linker and path escaping: all of the file paths be linked use a combination of backslashes and escaped forward slashes

bazel-out/x64_windows-opt-exec-2B5CBBC6/bin/external/cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.[0-9].rcgu.o

but the final error has all forward slashes

note: LINK : fatal error LNK1181: cannot open input file 'bazel-out\x64_windows-opt-exec-2B5CBBC6\bin\external\cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.0.rcgu.o'

@PiotrSikora@martijneken@mpwarres can you advise on the support goals for Wasmtime windows in this repo? With Envoy and rules_rust turning down CI, does it make sense to do the same here?

@martijneken

martijneken commented Aug 14, 2024

Copy link
Copy Markdown
Contributor

I don't feel strongly about supporting Wasmtime for Windows, since our dependencies don't support it. Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)? @PiotrSikora WDYT

@PiotrSikora

Copy link
Copy Markdown
Member

Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)?

There is a big gap here - all Wasm engines other than Wasmtime. Notably, Wasmtime on Windows is the only build on the CI executing real WasmVM code paths (because it is the fastest to compile), so it would be helpful to add tests using another Wasm engine on Windows, before removing Wasmtime on Windows... assuming that you want to support it at all.

cc @shukitchan for ATS, which relies on proxy-wasm-cpp-host.

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

If any other proxy implementations have windows expertise, I'd appreciate the help/guidance!

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

Comment thread.gitignore Outdated
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

I can give it a try

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

#410 opened. @mpwarres@PiotrSikora@martijneken can one of you kick off CI?

@PiotrSikora

Copy link
Copy Markdown
Member

Could you rebase this on top of main branch and update Wasmtime to v24.0.0? Thanks!

martijnekenand others added 5 commits August 21, 2024 13:26
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
@keithmattixkeithmattix changed the title Update wasmtime and RustUpdate wasmtime (v24.0.0)Aug 21, 2024
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

Comment threadbazel/external/rules_rust.patch
@PiotrSikora

PiotrSikora commented Aug 22, 2024

Copy link
Copy Markdown
Member

@PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

I think it would be useful to have something working, even if it's not Wasmtime, but I don't have a horse in this race, so the final decision is up to @mpwarres and @martijneken who are the current maintainers.

@mpwarres

Copy link
Copy Markdown
Contributor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

My individual opinion is that the same considerations that led Bazel and Envoy to drop support for Windows CI (insufficient Windows expertise + lack of resources to track down Windows issues) apply here as well, plus the way that we build Wasmtime depends on rules_rust which no longer supports Windows, so we'd be on shaky ground. I'm in favor of dropping the Wasmtime Windows CI action, but keeping NullVm as a safeguard against total bitrot on Windows, leaving the option of reintroducing support in the future should circumstances change. @martijneken WDYT?

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like WAMR on windows still passes in CI (confirmed in #413). Can I get some reviews on that and I'll rebase once that merges

@PiotrSikoraPiotrSikora mentioned this pull request Aug 23, 2024
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Comment threadbazel/cargo/wasmtime/Cargo.toml
Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Comment threadbazel/cargo/wasmtime/Cargo.toml
@keithmattix

keithmattix commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@mpwarres@martijneken is this in a good enough state to merge?

@martijnekenmartijneken left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the wasmtime-windows CI action as required. Should be good to merge now.

@martijneken
martijneken merged commit 21a5b08 into proxy-wasm:mainSep 4, 2024
Comment threadbazel/external/wasm-c-api.BUILD
@keithmattix
keithmattix deleted the update-wasmtime branch September 26, 2024 17:41
johnlanni pushed a commit to higress-group/proxy-wasm-cpp-host that referenced this pull request Jan 26, 2026
… behavior (proxy-wasm#434) (#11)
* fix: CI branch name master -> main (proxy-wasm#398)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Bump Abseil to fix Linux build issues (proxy-wasm#400)
Bump Abseil to fix Linux build issues
Pick up this fix: abseil/abseil-cpp#1187
Bump past Envoy to pick up another fix found in fuzz tests:
proxy-wasm#399 (comment)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Update cargo-raze -> crate_universe (proxy-wasm#399)
- Updated platforms for crate_universe compatibility
- Supports upgrade to wasmsign2
- Includes workaround for Windows path length issue
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Move from unavailable macos-11 to macos-13 (proxy-wasm#401)
See: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
This does not fixproxy-wasm#384, but does resurface those errors.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump Bazel from 5.2.0 to 6.5.0 (proxy-wasm#402)
Bump Bazel from 5.2.0 to 6.5.0
This breaks the s390x build which relied on an external Docker image. I made some strides in fixing s390x, but it's not yet working. Deferred to proxy-wasm#405.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump rules_python and rules_fuzzing (proxy-wasm#404)
Upgrade rules_python (0.34.0) and rules_fuzzing (0.5.2)
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update CI to use Ubuntu 22.04 / clang 14 (proxy-wasm#408)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update rules_rust to v0.42.1 (with Rust v1.77.2). (proxy-wasm#410)
* Update rules_rust
* Update rust and vendor
* rust_oom -> rg_oom
* Change rust version
---------
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* Update wasmtime (v24.0.0) (proxy-wasm#406)
Removes Wasmtime + Windows CI because rules_rust has recently dropped Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* fix: Upgrade deprecated artifact upload/download handlers (proxy-wasm#415)
Seen on proxy-wasm#380 CI:
Error: This request has been automatically failed because it uses a deprecated version of `actions/upload-artifact: v2`. Learn more: https://github.blog/changelog/2024-02-13-deprecation-notice-v1-and-v2-of-the-artifact-actions/
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* bump wamr to 2.1.1 and able to consume precompiled content (proxy-wasm#380)
- skip leading paddings in .aot section
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
* compdb add the compdb support to the proxy_wasm_cpp_host (proxy-wasm#419)
* compdb add the compdb support to the proxy_wasm_cpp_host
Signed-off-by: wangbaiping <wbphub@gmail.com>
* Fix references to prefix_wasm_api (proxy-wasm#420)
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* feat(go-sdk): add wasi hostcalls used by the Go SDK (proxy-wasm#427)
The full Go sdk imports hostcalls not currently exported to the wasm
module, making the wasm module fail on instantiation. Per discussion
with the Go core maintainers, these functions do not need to be
implemented, but they must be present.
Signed-off-by: Matt Leon <mattleon@google.com>
* chore: workflow runner fixes (proxy-wasm#436)
Assorted changes to get workflows working again:
- Update format workflows to use ubuntu-22.04
- Update windows-2019 to windows-2022 and add a missing <string> include needed to
build with that
- Enable manual triggering of workflows
Fixesproxy-wasm#435
---------
Signed-off-by: Michael Warres <mpw@google.com>
* feat: add knob to customise on{Request,Response}Headers StopIteration behavior (proxy-wasm#434)
Add protected ContextBase::allow_on_headers_stop_iteration_ field that can be used by host implementations to control whether or not ContextBase propagates FilterHeaderStatus::StopIteration returned by onRequestHeaders() or onResponseHeaders() without modification.
Follow-on envoyproxy/envoy#40213 adds an option in Envoy WasmFilter PluginConfig that sets the value of this field.
For details, see [Envoy Wasm / Proxy-Wasm support for FilterHeadersStatus::StopIteration](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?usp=sharing). This PR is one part of implementing [Option B: WasmFilter config knob](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?tab=t.0#bookmark=id.5wxldlapsp54).
Note that default behavior of proxy-wasm-cpp-host and ContextBase is unchanged.
---------
Signed-off-by: Michael Warres <mpw@google.com>
---------
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
Signed-off-by: wangbaiping <wbphub@gmail.com>
Signed-off-by: Matt Leon <mattleon@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Co-authored-by: martijneken <mstevenson@google.com>
Co-authored-by: Keith Mattix II <keithmattix2@gmail.com>
Co-authored-by: Keith Mattix II <keithmattix@microsoft.com>
Co-authored-by: liang.he <liang.he@intel.com>
Co-authored-by: code <wbphub@gmail.com>
Co-authored-by: Matt Leon <ml@mattleon.com>
Co-authored-by: Michael Warres <mpw@google.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@keithmattix@martijneken@PiotrSikora@mpwarres
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Update wasmtime (v24.0.0) - #406

Merged
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime
Sep 4, 2024
Merged

Update wasmtime (v24.0.0)#406
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime

Conversation

@keithmattix

Copy link
Copy Markdown
Contributor

Builds on top of #404 and #402

@martijneken

martijneken commented Aug 11, 2024

Copy link
Copy Markdown
Contributor

Ran CI. Looks like:

  • bazel/dependencies.bzl needs formatting
  • diffs in cargo vendor:
    • run bazelisk run //bazel/cargo/wasmsign:crates_vendor -- --repin
    • run bazelisk run //bazel/cargo/wasmtime:crates_vendor -- --repin
    • commit above changes
  • CI unhappy (rust panics) with --define engine=v8 and --define engine=wasmtime (might be fixed by above)

Comment threadbazel/external/rules_rust.patch
Comment threadbazel/dependencies.bzl Outdated
@martijneken

martijneken commented Aug 12, 2024

Copy link
Copy Markdown
Contributor

Looks like buildifier and wasmtime remain. Wasmtime build error:

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
ld.lld: error: undefined symbol: wasm_module_new
>>> referenced by wasmtime.cc
>>> wasmtime.o:(proxy_wasm::wasmtime::Wasmtime::load(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::unordered_map<unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&)) in archive bazel-out/k8-fastbuild/bin/libwasmtime_lib.a

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

@PiotrSikora

Copy link
Copy Markdown
Member

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

wasm-c-api is still vendored in Wasmtime (wheras previously it was imported as git submodule).

Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Comment threadcompile_commands.json Outdated
Comment thread.vscode/settings.json Outdated
@keithmattix

keithmattix commented Aug 13, 2024

Copy link
Copy Markdown
ContributorAuthor

Looks like CI is pretty much passing except for buildifier (I have the fix staged locally) and this random windows failure. I wonder if it's related to #368 (comment)

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Getting closer....I tried to repro the Windows issue on a local machine but no dice (rust-lld isn't happy for whatever reason). If anyone has a clue what's happening please let me know. I should also mention that Windows isn't actively supported in Envoy anymore; not sure what proxy-wasm's stance is on Windows

image

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like rules_rust no longer aims to support Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms. The current Windows failure seems to be a weird interaction with the Windows linker and path escaping: all of the file paths be linked use a combination of backslashes and escaped forward slashes

bazel-out/x64_windows-opt-exec-2B5CBBC6/bin/external/cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.[0-9].rcgu.o

but the final error has all forward slashes

note: LINK : fatal error LNK1181: cannot open input file 'bazel-out\x64_windows-opt-exec-2B5CBBC6\bin\external\cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.0.rcgu.o'

@PiotrSikora@martijneken@mpwarres can you advise on the support goals for Wasmtime windows in this repo? With Envoy and rules_rust turning down CI, does it make sense to do the same here?

@martijneken

martijneken commented Aug 14, 2024

Copy link
Copy Markdown
Contributor

I don't feel strongly about supporting Wasmtime for Windows, since our dependencies don't support it. Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)? @PiotrSikora WDYT

@PiotrSikora

Copy link
Copy Markdown
Member

Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)?

There is a big gap here - all Wasm engines other than Wasmtime. Notably, Wasmtime on Windows is the only build on the CI executing real WasmVM code paths (because it is the fastest to compile), so it would be helpful to add tests using another Wasm engine on Windows, before removing Wasmtime on Windows... assuming that you want to support it at all.

cc @shukitchan for ATS, which relies on proxy-wasm-cpp-host.

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

If any other proxy implementations have windows expertise, I'd appreciate the help/guidance!

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

Comment thread.gitignore Outdated
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

I can give it a try

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

#410 opened. @mpwarres@PiotrSikora@martijneken can one of you kick off CI?

@PiotrSikora

Copy link
Copy Markdown
Member

Could you rebase this on top of main branch and update Wasmtime to v24.0.0? Thanks!

martijnekenand others added 5 commits August 21, 2024 13:26
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
@keithmattixkeithmattix changed the title Update wasmtime and RustUpdate wasmtime (v24.0.0)Aug 21, 2024
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

Comment threadbazel/external/rules_rust.patch
@PiotrSikora

PiotrSikora commented Aug 22, 2024

Copy link
Copy Markdown
Member

@PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

I think it would be useful to have something working, even if it's not Wasmtime, but I don't have a horse in this race, so the final decision is up to @mpwarres and @martijneken who are the current maintainers.

@mpwarres

Copy link
Copy Markdown
Contributor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

My individual opinion is that the same considerations that led Bazel and Envoy to drop support for Windows CI (insufficient Windows expertise + lack of resources to track down Windows issues) apply here as well, plus the way that we build Wasmtime depends on rules_rust which no longer supports Windows, so we'd be on shaky ground. I'm in favor of dropping the Wasmtime Windows CI action, but keeping NullVm as a safeguard against total bitrot on Windows, leaving the option of reintroducing support in the future should circumstances change. @martijneken WDYT?

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like WAMR on windows still passes in CI (confirmed in #413). Can I get some reviews on that and I'll rebase once that merges

@PiotrSikoraPiotrSikora mentioned this pull request Aug 23, 2024
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Comment threadbazel/cargo/wasmtime/Cargo.toml
Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Comment threadbazel/cargo/wasmtime/Cargo.toml
@keithmattix

keithmattix commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@mpwarres@martijneken is this in a good enough state to merge?

@martijnekenmartijneken left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the wasmtime-windows CI action as required. Should be good to merge now.

@martijneken
martijneken merged commit 21a5b08 into proxy-wasm:mainSep 4, 2024
Comment threadbazel/external/wasm-c-api.BUILD
@keithmattix
keithmattix deleted the update-wasmtime branch September 26, 2024 17:41
johnlanni pushed a commit to higress-group/proxy-wasm-cpp-host that referenced this pull request Jan 26, 2026
… behavior (proxy-wasm#434) (#11)
* fix: CI branch name master -> main (proxy-wasm#398)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Bump Abseil to fix Linux build issues (proxy-wasm#400)
Bump Abseil to fix Linux build issues
Pick up this fix: abseil/abseil-cpp#1187
Bump past Envoy to pick up another fix found in fuzz tests:
proxy-wasm#399 (comment)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Update cargo-raze -> crate_universe (proxy-wasm#399)
- Updated platforms for crate_universe compatibility
- Supports upgrade to wasmsign2
- Includes workaround for Windows path length issue
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Move from unavailable macos-11 to macos-13 (proxy-wasm#401)
See: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
This does not fixproxy-wasm#384, but does resurface those errors.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump Bazel from 5.2.0 to 6.5.0 (proxy-wasm#402)
Bump Bazel from 5.2.0 to 6.5.0
This breaks the s390x build which relied on an external Docker image. I made some strides in fixing s390x, but it's not yet working. Deferred to proxy-wasm#405.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump rules_python and rules_fuzzing (proxy-wasm#404)
Upgrade rules_python (0.34.0) and rules_fuzzing (0.5.2)
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update CI to use Ubuntu 22.04 / clang 14 (proxy-wasm#408)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update rules_rust to v0.42.1 (with Rust v1.77.2). (proxy-wasm#410)
* Update rules_rust
* Update rust and vendor
* rust_oom -> rg_oom
* Change rust version
---------
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* Update wasmtime (v24.0.0) (proxy-wasm#406)
Removes Wasmtime + Windows CI because rules_rust has recently dropped Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* fix: Upgrade deprecated artifact upload/download handlers (proxy-wasm#415)
Seen on proxy-wasm#380 CI:
Error: This request has been automatically failed because it uses a deprecated version of `actions/upload-artifact: v2`. Learn more: https://github.blog/changelog/2024-02-13-deprecation-notice-v1-and-v2-of-the-artifact-actions/
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* bump wamr to 2.1.1 and able to consume precompiled content (proxy-wasm#380)
- skip leading paddings in .aot section
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
* compdb add the compdb support to the proxy_wasm_cpp_host (proxy-wasm#419)
* compdb add the compdb support to the proxy_wasm_cpp_host
Signed-off-by: wangbaiping <wbphub@gmail.com>
* Fix references to prefix_wasm_api (proxy-wasm#420)
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* feat(go-sdk): add wasi hostcalls used by the Go SDK (proxy-wasm#427)
The full Go sdk imports hostcalls not currently exported to the wasm
module, making the wasm module fail on instantiation. Per discussion
with the Go core maintainers, these functions do not need to be
implemented, but they must be present.
Signed-off-by: Matt Leon <mattleon@google.com>
* chore: workflow runner fixes (proxy-wasm#436)
Assorted changes to get workflows working again:
- Update format workflows to use ubuntu-22.04
- Update windows-2019 to windows-2022 and add a missing <string> include needed to
build with that
- Enable manual triggering of workflows
Fixesproxy-wasm#435
---------
Signed-off-by: Michael Warres <mpw@google.com>
* feat: add knob to customise on{Request,Response}Headers StopIteration behavior (proxy-wasm#434)
Add protected ContextBase::allow_on_headers_stop_iteration_ field that can be used by host implementations to control whether or not ContextBase propagates FilterHeaderStatus::StopIteration returned by onRequestHeaders() or onResponseHeaders() without modification.
Follow-on envoyproxy/envoy#40213 adds an option in Envoy WasmFilter PluginConfig that sets the value of this field.
For details, see [Envoy Wasm / Proxy-Wasm support for FilterHeadersStatus::StopIteration](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?usp=sharing). This PR is one part of implementing [Option B: WasmFilter config knob](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?tab=t.0#bookmark=id.5wxldlapsp54).
Note that default behavior of proxy-wasm-cpp-host and ContextBase is unchanged.
---------
Signed-off-by: Michael Warres <mpw@google.com>
---------
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
Signed-off-by: wangbaiping <wbphub@gmail.com>
Signed-off-by: Matt Leon <mattleon@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Co-authored-by: martijneken <mstevenson@google.com>
Co-authored-by: Keith Mattix II <keithmattix2@gmail.com>
Co-authored-by: Keith Mattix II <keithmattix@microsoft.com>
Co-authored-by: liang.he <liang.he@intel.com>
Co-authored-by: code <wbphub@gmail.com>
Co-authored-by: Matt Leon <ml@mattleon.com>
Co-authored-by: Michael Warres <mpw@google.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@keithmattix@martijneken@PiotrSikora@mpwarres
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Update wasmtime (v24.0.0) - #406

Merged
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime
Sep 4, 2024
Merged

Update wasmtime (v24.0.0)#406
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime

Conversation

@keithmattix

Copy link
Copy Markdown
Contributor

Builds on top of #404 and #402

@martijneken

martijneken commented Aug 11, 2024

Copy link
Copy Markdown
Contributor

Ran CI. Looks like:

  • bazel/dependencies.bzl needs formatting
  • diffs in cargo vendor:
    • run bazelisk run //bazel/cargo/wasmsign:crates_vendor -- --repin
    • run bazelisk run //bazel/cargo/wasmtime:crates_vendor -- --repin
    • commit above changes
  • CI unhappy (rust panics) with --define engine=v8 and --define engine=wasmtime (might be fixed by above)

Comment threadbazel/external/rules_rust.patch
Comment threadbazel/dependencies.bzl Outdated
@martijneken

martijneken commented Aug 12, 2024

Copy link
Copy Markdown
Contributor

Looks like buildifier and wasmtime remain. Wasmtime build error:

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
ld.lld: error: undefined symbol: wasm_module_new
>>> referenced by wasmtime.cc
>>> wasmtime.o:(proxy_wasm::wasmtime::Wasmtime::load(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::unordered_map<unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&)) in archive bazel-out/k8-fastbuild/bin/libwasmtime_lib.a

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

@PiotrSikora

Copy link
Copy Markdown
Member

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

wasm-c-api is still vendored in Wasmtime (wheras previously it was imported as git submodule).

Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Comment threadcompile_commands.json Outdated
Comment thread.vscode/settings.json Outdated
@keithmattix

keithmattix commented Aug 13, 2024

Copy link
Copy Markdown
ContributorAuthor

Looks like CI is pretty much passing except for buildifier (I have the fix staged locally) and this random windows failure. I wonder if it's related to #368 (comment)

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Getting closer....I tried to repro the Windows issue on a local machine but no dice (rust-lld isn't happy for whatever reason). If anyone has a clue what's happening please let me know. I should also mention that Windows isn't actively supported in Envoy anymore; not sure what proxy-wasm's stance is on Windows

image

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like rules_rust no longer aims to support Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms. The current Windows failure seems to be a weird interaction with the Windows linker and path escaping: all of the file paths be linked use a combination of backslashes and escaped forward slashes

bazel-out/x64_windows-opt-exec-2B5CBBC6/bin/external/cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.[0-9].rcgu.o

but the final error has all forward slashes

note: LINK : fatal error LNK1181: cannot open input file 'bazel-out\x64_windows-opt-exec-2B5CBBC6\bin\external\cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.0.rcgu.o'

@PiotrSikora@martijneken@mpwarres can you advise on the support goals for Wasmtime windows in this repo? With Envoy and rules_rust turning down CI, does it make sense to do the same here?

@martijneken

martijneken commented Aug 14, 2024

Copy link
Copy Markdown
Contributor

I don't feel strongly about supporting Wasmtime for Windows, since our dependencies don't support it. Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)? @PiotrSikora WDYT

@PiotrSikora

Copy link
Copy Markdown
Member

Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)?

There is a big gap here - all Wasm engines other than Wasmtime. Notably, Wasmtime on Windows is the only build on the CI executing real WasmVM code paths (because it is the fastest to compile), so it would be helpful to add tests using another Wasm engine on Windows, before removing Wasmtime on Windows... assuming that you want to support it at all.

cc @shukitchan for ATS, which relies on proxy-wasm-cpp-host.

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

If any other proxy implementations have windows expertise, I'd appreciate the help/guidance!

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

Comment thread.gitignore Outdated
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

I can give it a try

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

#410 opened. @mpwarres@PiotrSikora@martijneken can one of you kick off CI?

@PiotrSikora

Copy link
Copy Markdown
Member

Could you rebase this on top of main branch and update Wasmtime to v24.0.0? Thanks!

martijnekenand others added 5 commits August 21, 2024 13:26
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
@keithmattixkeithmattix changed the title Update wasmtime and RustUpdate wasmtime (v24.0.0)Aug 21, 2024
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

Comment threadbazel/external/rules_rust.patch
@PiotrSikora

PiotrSikora commented Aug 22, 2024

Copy link
Copy Markdown
Member

@PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

I think it would be useful to have something working, even if it's not Wasmtime, but I don't have a horse in this race, so the final decision is up to @mpwarres and @martijneken who are the current maintainers.

@mpwarres

Copy link
Copy Markdown
Contributor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

My individual opinion is that the same considerations that led Bazel and Envoy to drop support for Windows CI (insufficient Windows expertise + lack of resources to track down Windows issues) apply here as well, plus the way that we build Wasmtime depends on rules_rust which no longer supports Windows, so we'd be on shaky ground. I'm in favor of dropping the Wasmtime Windows CI action, but keeping NullVm as a safeguard against total bitrot on Windows, leaving the option of reintroducing support in the future should circumstances change. @martijneken WDYT?

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like WAMR on windows still passes in CI (confirmed in #413). Can I get some reviews on that and I'll rebase once that merges

@PiotrSikoraPiotrSikora mentioned this pull request Aug 23, 2024
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Comment threadbazel/cargo/wasmtime/Cargo.toml
Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Comment threadbazel/cargo/wasmtime/Cargo.toml
@keithmattix

keithmattix commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@mpwarres@martijneken is this in a good enough state to merge?

@martijnekenmartijneken left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the wasmtime-windows CI action as required. Should be good to merge now.

@martijneken
martijneken merged commit 21a5b08 into proxy-wasm:mainSep 4, 2024
Comment threadbazel/external/wasm-c-api.BUILD
@keithmattix
keithmattix deleted the update-wasmtime branch September 26, 2024 17:41
johnlanni pushed a commit to higress-group/proxy-wasm-cpp-host that referenced this pull request Jan 26, 2026
… behavior (proxy-wasm#434) (#11)
* fix: CI branch name master -> main (proxy-wasm#398)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Bump Abseil to fix Linux build issues (proxy-wasm#400)
Bump Abseil to fix Linux build issues
Pick up this fix: abseil/abseil-cpp#1187
Bump past Envoy to pick up another fix found in fuzz tests:
proxy-wasm#399 (comment)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Update cargo-raze -> crate_universe (proxy-wasm#399)
- Updated platforms for crate_universe compatibility
- Supports upgrade to wasmsign2
- Includes workaround for Windows path length issue
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Move from unavailable macos-11 to macos-13 (proxy-wasm#401)
See: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
This does not fixproxy-wasm#384, but does resurface those errors.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump Bazel from 5.2.0 to 6.5.0 (proxy-wasm#402)
Bump Bazel from 5.2.0 to 6.5.0
This breaks the s390x build which relied on an external Docker image. I made some strides in fixing s390x, but it's not yet working. Deferred to proxy-wasm#405.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump rules_python and rules_fuzzing (proxy-wasm#404)
Upgrade rules_python (0.34.0) and rules_fuzzing (0.5.2)
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update CI to use Ubuntu 22.04 / clang 14 (proxy-wasm#408)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update rules_rust to v0.42.1 (with Rust v1.77.2). (proxy-wasm#410)
* Update rules_rust
* Update rust and vendor
* rust_oom -> rg_oom
* Change rust version
---------
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* Update wasmtime (v24.0.0) (proxy-wasm#406)
Removes Wasmtime + Windows CI because rules_rust has recently dropped Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* fix: Upgrade deprecated artifact upload/download handlers (proxy-wasm#415)
Seen on proxy-wasm#380 CI:
Error: This request has been automatically failed because it uses a deprecated version of `actions/upload-artifact: v2`. Learn more: https://github.blog/changelog/2024-02-13-deprecation-notice-v1-and-v2-of-the-artifact-actions/
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* bump wamr to 2.1.1 and able to consume precompiled content (proxy-wasm#380)
- skip leading paddings in .aot section
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
* compdb add the compdb support to the proxy_wasm_cpp_host (proxy-wasm#419)
* compdb add the compdb support to the proxy_wasm_cpp_host
Signed-off-by: wangbaiping <wbphub@gmail.com>
* Fix references to prefix_wasm_api (proxy-wasm#420)
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* feat(go-sdk): add wasi hostcalls used by the Go SDK (proxy-wasm#427)
The full Go sdk imports hostcalls not currently exported to the wasm
module, making the wasm module fail on instantiation. Per discussion
with the Go core maintainers, these functions do not need to be
implemented, but they must be present.
Signed-off-by: Matt Leon <mattleon@google.com>
* chore: workflow runner fixes (proxy-wasm#436)
Assorted changes to get workflows working again:
- Update format workflows to use ubuntu-22.04
- Update windows-2019 to windows-2022 and add a missing <string> include needed to
build with that
- Enable manual triggering of workflows
Fixesproxy-wasm#435
---------
Signed-off-by: Michael Warres <mpw@google.com>
* feat: add knob to customise on{Request,Response}Headers StopIteration behavior (proxy-wasm#434)
Add protected ContextBase::allow_on_headers_stop_iteration_ field that can be used by host implementations to control whether or not ContextBase propagates FilterHeaderStatus::StopIteration returned by onRequestHeaders() or onResponseHeaders() without modification.
Follow-on envoyproxy/envoy#40213 adds an option in Envoy WasmFilter PluginConfig that sets the value of this field.
For details, see [Envoy Wasm / Proxy-Wasm support for FilterHeadersStatus::StopIteration](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?usp=sharing). This PR is one part of implementing [Option B: WasmFilter config knob](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?tab=t.0#bookmark=id.5wxldlapsp54).
Note that default behavior of proxy-wasm-cpp-host and ContextBase is unchanged.
---------
Signed-off-by: Michael Warres <mpw@google.com>
---------
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
Signed-off-by: wangbaiping <wbphub@gmail.com>
Signed-off-by: Matt Leon <mattleon@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Co-authored-by: martijneken <mstevenson@google.com>
Co-authored-by: Keith Mattix II <keithmattix2@gmail.com>
Co-authored-by: Keith Mattix II <keithmattix@microsoft.com>
Co-authored-by: liang.he <liang.he@intel.com>
Co-authored-by: code <wbphub@gmail.com>
Co-authored-by: Matt Leon <ml@mattleon.com>
Co-authored-by: Michael Warres <mpw@google.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@keithmattix@martijneken@PiotrSikora@mpwarres
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Update wasmtime (v24.0.0) - #406

Merged
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime
Sep 4, 2024
Merged

Update wasmtime (v24.0.0)#406
martijneken merged 14 commits into
proxy-wasm:mainfrom
keithmattix:update-wasmtime

Conversation

@keithmattix

Copy link
Copy Markdown
Contributor

Builds on top of #404 and #402

@martijneken

martijneken commented Aug 11, 2024

Copy link
Copy Markdown
Contributor

Ran CI. Looks like:

  • bazel/dependencies.bzl needs formatting
  • diffs in cargo vendor:
    • run bazelisk run //bazel/cargo/wasmsign:crates_vendor -- --repin
    • run bazelisk run //bazel/cargo/wasmtime:crates_vendor -- --repin
    • commit above changes
  • CI unhappy (rust panics) with --define engine=v8 and --define engine=wasmtime (might be fixed by above)

Comment threadbazel/external/rules_rust.patch
Comment threadbazel/dependencies.bzl Outdated
@martijneken

martijneken commented Aug 12, 2024

Copy link
Copy Markdown
Contributor

Looks like buildifier and wasmtime remain. Wasmtime build error:

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
ld.lld: error: undefined symbol: wasm_module_new
>>> referenced by wasmtime.cc
>>> wasmtime.o:(proxy_wasm::wasmtime::Wasmtime::load(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::unordered_map<unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::hash<unsigned int>, std::__1::equal_to<unsigned int>, std::__1::allocator<std::__1::pair<unsigned int const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > > const&)) in archive bazel-out/k8-fastbuild/bin/libwasmtime_lib.a

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

@PiotrSikora

Copy link
Copy Markdown
Member

Yep iterating on it locally. I suspect The wasmtime build failure is related to the fact that wasmtime no longer vendors WASM-c-api so I'm figuring out how to make the new pathing with Bazel

wasm-c-api is still vendored in Wasmtime (wheras previously it was imported as git submodule).

Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Comment threadcompile_commands.json Outdated
Comment thread.vscode/settings.json Outdated
@keithmattix

keithmattix commented Aug 13, 2024

Copy link
Copy Markdown
ContributorAuthor

Looks like CI is pretty much passing except for buildifier (I have the fix staged locally) and this random windows failure. I wonder if it's related to #368 (comment)

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Getting closer....I tried to repro the Windows issue on a local machine but no dice (rust-lld isn't happy for whatever reason). If anyone has a clue what's happening please let me know. I should also mention that Windows isn't actively supported in Envoy anymore; not sure what proxy-wasm's stance is on Windows

image

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like rules_rust no longer aims to support Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms. The current Windows failure seems to be a weird interaction with the Windows linker and path escaping: all of the file paths be linked use a combination of backslashes and escaped forward slashes

bazel-out/x64_windows-opt-exec-2B5CBBC6/bin/external/cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.[0-9].rcgu.o

but the final error has all forward slashes

note: LINK : fatal error LNK1181: cannot open input file 'bazel-out\x64_windows-opt-exec-2B5CBBC6\bin\external\cu__wasmtime-versioned-export-macros-23.0.1\wasmtime_versioned_export_macros-1891060849.wasmtime_versioned_export_macros.92cc13fa569db95f-cgu.0.rcgu.o'

@PiotrSikora@martijneken@mpwarres can you advise on the support goals for Wasmtime windows in this repo? With Envoy and rules_rust turning down CI, does it make sense to do the same here?

@martijneken

martijneken commented Aug 14, 2024

Copy link
Copy Markdown
Contributor

I don't feel strongly about supporting Wasmtime for Windows, since our dependencies don't support it. Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)? @PiotrSikora WDYT

@PiotrSikora

Copy link
Copy Markdown
Member

Could we keep NullVM on Windows (no Rust, passing) while ditching Wasmtime on Windows (depends on Rust)?

There is a big gap here - all Wasm engines other than Wasmtime. Notably, Wasmtime on Windows is the only build on the CI executing real WasmVM code paths (because it is the fastest to compile), so it would be helpful to add tests using another Wasm engine on Windows, before removing Wasmtime on Windows... assuming that you want to support it at all.

cc @shukitchan for ATS, which relies on proxy-wasm-cpp-host.

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

If any other proxy implementations have windows expertise, I'd appreciate the help/guidance!

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

Comment thread.gitignore Outdated
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Nitpicking as usual, but could this be split into rules_rust update followed by Wasmtime update?

I can give it a try

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

#410 opened. @mpwarres@PiotrSikora@martijneken can one of you kick off CI?

@PiotrSikora

Copy link
Copy Markdown
Member

Could you rebase this on top of main branch and update Wasmtime to v24.0.0? Thanks!

martijnekenand others added 5 commits August 21, 2024 13:26
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
@keithmattixkeithmattix changed the title Update wasmtime and RustUpdate wasmtime (v24.0.0)Aug 21, 2024
@keithmattix

Copy link
Copy Markdown
ContributorAuthor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

Comment threadbazel/external/rules_rust.patch
@PiotrSikora

PiotrSikora commented Aug 22, 2024

Copy link
Copy Markdown
Member

@PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

I think it would be useful to have something working, even if it's not Wasmtime, but I don't have a horse in this race, so the final decision is up to @mpwarres and @martijneken who are the current maintainers.

@mpwarres

Copy link
Copy Markdown
Contributor

CI looks mostly good after the rebase + update. @PiotrSikora@mpwarres@martijneken what's the final verdict on Windows support?

My individual opinion is that the same considerations that led Bazel and Envoy to drop support for Windows CI (insufficient Windows expertise + lack of resources to track down Windows issues) apply here as well, plus the way that we build Wasmtime depends on rules_rust which no longer supports Windows, so we'd be on shaky ground. I'm in favor of dropping the Wasmtime Windows CI action, but keeping NullVm as a safeguard against total bitrot on Windows, leaving the option of reintroducing support in the future should circumstances change. @martijneken WDYT?

@keithmattix

Copy link
Copy Markdown
ContributorAuthor

Looks like WAMR on windows still passes in CI (confirmed in #413). Can I get some reviews on that and I'll rebase once that merges

@PiotrSikoraPiotrSikora mentioned this pull request Aug 23, 2024
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Comment threadbazel/cargo/wasmtime/Cargo.toml
Comment threadbazel/cargo/wasmtime/Cargo.toml Outdated
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>

@PiotrSikoraPiotrSikora left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Comment threadbazel/cargo/wasmtime/Cargo.toml
@keithmattix

keithmattix commented Aug 30, 2024

Copy link
Copy Markdown
ContributorAuthor

@mpwarres@martijneken is this in a good enough state to merge?

@martijnekenmartijneken left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the wasmtime-windows CI action as required. Should be good to merge now.

@martijneken
martijneken merged commit 21a5b08 into proxy-wasm:mainSep 4, 2024
Comment threadbazel/external/wasm-c-api.BUILD
@keithmattix
keithmattix deleted the update-wasmtime branch September 26, 2024 17:41
johnlanni pushed a commit to higress-group/proxy-wasm-cpp-host that referenced this pull request Jan 26, 2026
… behavior (proxy-wasm#434) (#11)
* fix: CI branch name master -> main (proxy-wasm#398)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Bump Abseil to fix Linux build issues (proxy-wasm#400)
Bump Abseil to fix Linux build issues
Pick up this fix: abseil/abseil-cpp#1187
Bump past Envoy to pick up another fix found in fuzz tests:
proxy-wasm#399 (comment)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Update cargo-raze -> crate_universe (proxy-wasm#399)
- Updated platforms for crate_universe compatibility
- Supports upgrade to wasmsign2
- Includes workaround for Windows path length issue
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* fix: Move from unavailable macos-11 to macos-13 (proxy-wasm#401)
See: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources
This does not fixproxy-wasm#384, but does resurface those errors.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump Bazel from 5.2.0 to 6.5.0 (proxy-wasm#402)
Bump Bazel from 5.2.0 to 6.5.0
This breaks the s390x build which relied on an external Docker image. I made some strides in fixing s390x, but it's not yet working. Deferred to proxy-wasm#405.
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* chore: bump rules_python and rules_fuzzing (proxy-wasm#404)
Upgrade rules_python (0.34.0) and rules_fuzzing (0.5.2)
This requires extracting WORKSPACE phases into more phases:
- dependencies -- py_repositories() and toolchains
- dependencies_python() -- pip_parse module loading
- dependencies_import() -- python/fuzzing/other deps
The new structure roughly matches Envoy WORKSPACE:
- envoy_dependencies()
- envoy_dependencies_extra() -- not needed here
- envoy_python_dependencies()
- envoy_dependency_imports()
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update CI to use Ubuntu 22.04 / clang 14 (proxy-wasm#408)
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* Update rules_rust to v0.42.1 (with Rust v1.77.2). (proxy-wasm#410)
* Update rules_rust
* Update rust and vendor
* rust_oom -> rg_oom
* Change rust version
---------
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* Update wasmtime (v24.0.0) (proxy-wasm#406)
Removes Wasmtime + Windows CI because rules_rust has recently dropped Windows: https://github.com/bazelbuild/rules_rust/blob/main/docs/index.md#supported-platforms
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* fix: Upgrade deprecated artifact upload/download handlers (proxy-wasm#415)
Seen on proxy-wasm#380 CI:
Error: This request has been automatically failed because it uses a deprecated version of `actions/upload-artifact: v2`. Learn more: https://github.blog/changelog/2024-02-13-deprecation-notice-v1-and-v2-of-the-artifact-actions/
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
* bump wamr to 2.1.1 and able to consume precompiled content (proxy-wasm#380)
- skip leading paddings in .aot section
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
* compdb add the compdb support to the proxy_wasm_cpp_host (proxy-wasm#419)
* compdb add the compdb support to the proxy_wasm_cpp_host
Signed-off-by: wangbaiping <wbphub@gmail.com>
* Fix references to prefix_wasm_api (proxy-wasm#420)
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
* feat(go-sdk): add wasi hostcalls used by the Go SDK (proxy-wasm#427)
The full Go sdk imports hostcalls not currently exported to the wasm
module, making the wasm module fail on instantiation. Per discussion
with the Go core maintainers, these functions do not need to be
implemented, but they must be present.
Signed-off-by: Matt Leon <mattleon@google.com>
* chore: workflow runner fixes (proxy-wasm#436)
Assorted changes to get workflows working again:
- Update format workflows to use ubuntu-22.04
- Update windows-2019 to windows-2022 and add a missing <string> include needed to
build with that
- Enable manual triggering of workflows
Fixesproxy-wasm#435
---------
Signed-off-by: Michael Warres <mpw@google.com>
* feat: add knob to customise on{Request,Response}Headers StopIteration behavior (proxy-wasm#434)
Add protected ContextBase::allow_on_headers_stop_iteration_ field that can be used by host implementations to control whether or not ContextBase propagates FilterHeaderStatus::StopIteration returned by onRequestHeaders() or onResponseHeaders() without modification.
Follow-on envoyproxy/envoy#40213 adds an option in Envoy WasmFilter PluginConfig that sets the value of this field.
For details, see [Envoy Wasm / Proxy-Wasm support for FilterHeadersStatus::StopIteration](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?usp=sharing). This PR is one part of implementing [Option B: WasmFilter config knob](https://docs.google.com/document/d/1Whd1C0k-H2NHrPOmlAqqauFz6ObSTP017juJIYyciB0/edit?tab=t.0#bookmark=id.5wxldlapsp54).
Note that default behavior of proxy-wasm-cpp-host and ContextBase is unchanged.
---------
Signed-off-by: Michael Warres <mpw@google.com>
---------
Signed-off-by: Martijn Stevenson <mstevenson@google.com>
Signed-off-by: Keith Mattix II <keithmattix@microsoft.com>
Signed-off-by: liang.he@intel.com <liang.he@intel.com>
Signed-off-by: wangbaiping <wbphub@gmail.com>
Signed-off-by: Matt Leon <mattleon@google.com>
Signed-off-by: Michael Warres <mpw@google.com>
Co-authored-by: martijneken <mstevenson@google.com>
Co-authored-by: Keith Mattix II <keithmattix2@gmail.com>
Co-authored-by: Keith Mattix II <keithmattix@microsoft.com>
Co-authored-by: liang.he <liang.he@intel.com>
Co-authored-by: code <wbphub@gmail.com>
Co-authored-by: Matt Leon <ml@mattleon.com>
Co-authored-by: Michael Warres <mpw@google.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@keithmattix@martijneken@PiotrSikora@mpwarres