Сan't compile memflow-qemu crate

Ubuntu 20.04.6 LTS

cargo new test
cd test
cargo add memflow-qemu
cargo run

Gives me errors from procfs-0.16.0:

error[E0560]: struct `procfs_core::InternalError` has no field named `backtrace`
  --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/procfs-0.16.0/src/process/namespaces.rs:24:43
   |
24 |             let entry = entry.map_err(|_| build_internal_error!(format!("Unable to get ns dir entry")))?;
   |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `procfs_core::InternalError` does not have this field
   |
   = note: all struct fields are already assigned
   = note: this error originates in the macro `build_internal_error` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0560]: struct `procfs_core::InternalError` has no field named `backtrace`
  --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/procfs-0.16.0/src/process/namespaces.rs:33:30
   |
33 |                 .map_err(|_| build_internal_error!(format!("Unable to stat {:?}", path)))?;
   |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `procfs_core::InternalError` does not have this field
   |
   = note: all struct fields are already assigned
   = note: this error originates in the macro `build_internal_error` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0560]: struct `procfs_core::InternalError` has no field named `backtrace`
  --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/procfs-0.16.0/src/process/namespaces.rs:44:28
   |
44 |                   return Err(build_internal_error!(format!(
   |  ____________________________^
45 | |                     "NsType appears more than once {:?}",
46 | |                     n.ns_type
47 | |                 )));
   | |__________________^ `procfs_core::InternalError` does not have this field
   |
   = note: all struct fields are already assigned
   = note: this error originates in the macro `build_internal_error` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0560]: struct `procfs_core::InternalError` has no field named `backtrace`
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/procfs-0.16.0/src/process/mod.rs:133:48
    |
133 |             target: expect!(FDTarget::from_str(expect!(link_os.to_str()))),
    |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^ `procfs_core::InternalError` does not have this field
    |
    = note: all struct fields are already assigned
    = note: this error originates in the macro `crate::build_internal_error` which comes from the expansion of the macro `expect` (in Nightly builds, run with -Z macro-backtrace for more info)
...
For more information about this error, try `rustc --explain E0560`.
error: could not compile `procfs` (lib) due to 26 previous errors
warning: build failed, waiting for other jobs to finish...

The rest of the crates that I tried to add compile fine.

This is a bug in the procfs crate. I submitted a fix here: Fix build error with backtrace feature enabled by mbrubeck · Pull Request #309 · eminence/procfs · GitHub

For now, one way to work around this error is to run:

cargo add procfs-core --features backtrace
2 Likes