Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wasmtime 11.0.0 Rust 1.71.0: error[E0599]: no method named append found for struct Arc<cap_std::fs::File> in the current scope #6755

Closed
jornfranke opened this issue Jul 20, 2023 · 4 comments

Comments

@jornfranke
Copy link

Hallo,

I try to upgrade the following simple wasmtime app to wasmtime 11.0.0:
https://github.com/ZuInnoTe/rust-wasm-dynamic-module-study/tree/main/wasm-app

However, during compilation (cargo build --release), I receive the following error in the wasmtime library (it does not seem to come from my app):

   Compiling wasmtime-wasi v11.0.0
error[E0599]: no method named `append` found for struct `Arc<cap_std::fs::File>` in the current scope
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasmtime-wasi-11.0.0/src/preview2/filesystem.rs:247:22
    |
247 |         Ok(self.file.append(buf)? as i64 as u64)
    |                      ^^^^^^ method not found in `Arc<File>`

error[E0599]: no method named `append_vectored` found for struct `Arc<cap_std::fs::File>` in the current scope
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wasmtime-wasi-11.0.0/src/preview2/filesystem.rs:253:27
    |
253 |         let n = self.file.append_vectored(bufs)? as i64 as u64;
    |                           ^^^^^^^^^^^^^^^ method not found in `Arc<File>`

For more information about this error, try `rustc --explain E0599`.

I have no issues with version 9.x.x

Do you have an idea what the issue is?

@jornfranke
Copy link
Author

Might be related to: #6370
?

@alexcrichton
Copy link
Member

alexcrichton commented Jul 20, 2023

Thanks for the report! This is a mistake in our Cargo.toml where we have a listed version requirement on system-interface = "0.25.1" but the relevant functions were added in 0.25.2. This means that Wasmtime should actually depend on system-interface = "0.25.2".

In the meantime though you should be able to fix this locally with cargo update -p system-interface. Does that fix the issue for you?

@jornfranke
Copy link
Author

This works, thanks a lot. I can progress now with other applications - I use the sameple app as a minimal app to see impact of new wasmtime versions.

I am then also waiting for 11.0.1 or similar so I can avoid the additional cargo update step.

alexcrichton added a commit to alexcrichton/wasmtime that referenced this issue Jul 21, 2023
This commit is an attempt to add another CI check for Wasmtime to ensure
that the minimum version bounds on all of our dependencies are accurate.
This is not a stable feature of Cargo and thus requires usage of
nightly. Additionally one of the reasons it's not stable is that the DX
is not great as many minimal-versions errors come from transitive
dependencies that we can't do anything about. Nevertheless I figure it
might be good to try out having it on CI and see how it fares.

This is inspired by bytecodealliance#6755 where we picked up a dependency on a newer
version of `system-interface` but forgot to update the minimum version
bound. Whether or not this prevents the issue or causes too many
headaches is I think yet to be seen.
alexcrichton added a commit to alexcrichton/wasmtime that referenced this issue Jul 21, 2023
This commit is an attempt to add another CI check for Wasmtime to ensure
that the minimum version bounds on all of our dependencies are accurate.
This is not a stable feature of Cargo and thus requires usage of
nightly. Additionally one of the reasons it's not stable is that the DX
is not great as many minimal-versions errors come from transitive
dependencies that we can't do anything about. Nevertheless I figure it
might be good to try out having it on CI and see how it fares.

This is inspired by bytecodealliance#6755 where we picked up a dependency on a newer
version of `system-interface` but forgot to update the minimum version
bound. Whether or not this prevents the issue or causes too many
headaches is I think yet to be seen.
alexcrichton added a commit that referenced this issue Jul 21, 2023
* Try adding a `minimal-versions` test to CI

This commit is an attempt to add another CI check for Wasmtime to ensure
that the minimum version bounds on all of our dependencies are accurate.
This is not a stable feature of Cargo and thus requires usage of
nightly. Additionally one of the reasons it's not stable is that the DX
is not great as many minimal-versions errors come from transitive
dependencies that we can't do anything about. Nevertheless I figure it
might be good to try out having it on CI and see how it fares.

This is inspired by #6755 where we picked up a dependency on a newer
version of `system-interface` but forgot to update the minimum version
bound. Whether or not this prevents the issue or causes too many
headaches is I think yet to be seen.

* Update some minimum version requirements
@alexcrichton
Copy link
Member

This is fixed with 11.0.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants