Skip to content

Revert "bazel/wasm: upgrade wasmtime from 32.0.0 to 42.0.2"#30387

Merged
dotnwat merged 1 commit intoredpanda-data:devfrom
travisdowns:td-revert-wasmtime42
May 6, 2026
Merged

Revert "bazel/wasm: upgrade wasmtime from 32.0.0 to 42.0.2"#30387
dotnwat merged 1 commit intoredpanda-data:devfrom
travisdowns:td-revert-wasmtime42

Conversation

@travisdowns
Copy link
Copy Markdown
Member

Reverts #30263.

The wasmtime 42 upgrade breaks LTO builds. //tools:pgo_profile fails
to link with:

ld.lld: error: undefined symbol: __rustc::__rust_no_alloc_shim_is_unstable_v2

The mangled __rustc::* allocator shim symbols introduced in rustc
1.87+ (opted into via experimental_use_allocator_libraries_with_mangled_symbols
in rules_rust) are not resolved correctly under LTO. Reverting until a
proper fix is in place; will re-land once the LTO interaction is sorted
out.

Backports Required

  • none - not a bug fix
  • none - this is a backport
  • none - issue does not exist in previous branches
  • none - papercut/not impactful enough to backport
  • v25.3.x
  • v25.2.x
  • v25.1.x

Release Notes

  • none

…rmetic-wasmtime42"

This reverts merge commit bf92d38,
reversing changes made to 3e9b64e.

The wasmtime 42 upgrade breaks LTO builds. //tools:pgo_profile fails to
link with:

  ld.lld: error: undefined symbol: __rustc::__rust_no_alloc_shim_is_unstable_v2

The mangled __rustc::* allocator shim symbols introduced in rustc 1.87+
(opted into via experimental_use_allocator_libraries_with_mangled_symbols
in rules_rust) are not resolved correctly under LTO. Reverting until a
proper fix is in place.
Copilot AI review requested due to automatic review settings May 6, 2026 18:08
@dotnwat dotnwat merged commit 38d10c2 into redpanda-data:dev May 6, 2026
16 of 23 checks passed
@vbotbuildovich
Copy link
Copy Markdown
Collaborator

CI test results

test results on build#84103
test_status test_class test_method test_arguments test_kind job_url passed reason test_history
FLAKY(PASS) WriteCachingFailureInjectionE2ETest test_crash_all {"use_transactions": false} integration https://buildkite.com/redpanda/redpanda/builds/84103#019dfe87-2ba4-40c2-9c2e-daf0b746182e 9/11 Test PASSES after retries.No significant increase in flaky rate(baseline=0.0956, p0=0.6338, reject_threshold=0.0100. adj_baseline=0.2602, p1=0.2219, trust_threshold=0.5000) https://redpanda.metabaseapp.com/dashboard/87-tests?tab=142-dt-individual-test-history&test_class=WriteCachingFailureInjectionE2ETest&test_method=test_crash_all

travisdowns added a commit that referenced this pull request May 7, 2026
Re-land of 08fc3c5, which was reverted
in 6116d3a (PR #30387) because the
upgrade broke the `--config=lto` / `--config=pgo-instrument` link with:

  ld.lld: error: undefined symbol: __rustc::__rust_no_alloc_shim_is_unstable_v2

That LTO failure is fixed by the preceding commit switching the rust
LTO mode from fat to thin; this commit re-introduces the upgrade
unchanged.

Additional changes required by the upgrade:

- Bump Rust toolchain from 1.86.0 to 1.91.0 (wasmtime 42 MSRV)
- Add PULLEY and ALL_ARCH feature flags to wasmtime.BUILD conf.h
  template substitutions (new in wasmtime 42)
- Remove wasmtime_config_async_support_set() call: async support is
  now implicit, the separate toggle was deprecated and removed from
  the C API (bytecodealliance/wasmtime#12371)
- Bump rules_rust 0.60.0 -> 0.70.0 and opt in to
  experimental_use_allocator_libraries_with_mangled_symbols so the
  mangled __rustc::* allocator shim symbols (introduced in rustc
  1.87+) are provided when a Rust staticlib is linked into a
  cc_binary via cc_common.link. Without this flag the link fails
  with undefined references to __rustc::__rust_alloc,
  __rustc::__rust_dealloc, etc. Background:
    - Issue:   bazelbuild/rules_rust#3459
    - Fix PR:  bazelbuild/rules_rust#3403
    - Landed in rules_rust 0.63.0 as an opt-in setting.
- Mirror the rustc tarball through vectorized-public to reduce
  dependence on static.rust-lang.org.
- Incidental: bump bazel_skylib 1.8.1 -> 1.8.2 and rules_shell
  0.4.1 -> 0.6.1 to silence direct-dependency version warnings
  pulled in by the new rules_rust.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants