ProjectMitosisOS / mitosis-core

An OS kernel module for fast **remote** fork using advanced datacenter networking (RDMA).
MIT License
57 stars 5 forks source link

Some Rust dependency issues prevent it from compiling #3

Open LiuMicheal opened 10 months ago

LiuMicheal commented 10 months ago

Hi, really excellent work! The research we were doing wanted to perform a performance comparison with mitosis, but we found that it had some Rust dependency issues that prevented it from compiling.

My environment: Ubuntu 18.04 4.15.0-46-generic MLNX_OFED_LINUX-4.9-3.1.5.0

After I completed all the instructions in mitosis-core/docs/setup.md. When I use rustc of nightly-2022-02-04-x86_64-unknown-linux-gnu, I get the following results:

root@liu-9:~/mitosis-core# make clean & make km [1] 88763 rm -rf mitosis-kms/Cargo.lock cd mitosis-kms ; python build.py fork rm -rf mitosis-kms/target

This error is easy to understand, so I switched to nightly-2022-11-03-x86_64-unknown-linux-gnu, which corresponds to rustc 1.67.

( I also found that rustc 1.68 and later versions cannot be used. For example, when I use nightly-2023-01-07-x86_64-unknown-linux-gnu, corresponding to rustc 1.68, an error will be reported:

root@liu-9:~/mitosis-core# make clean & make km [1] 88923 rm -rf mitosis-kms/Cargo.lock cd mitosis-kms ; python build.py fork rm -rf mitosis-kms/target

Caused by: process didn't exit successfully: rustc - --crate-name ___ --print=file-names --target x86_64-unknown-none-linuxkernel --crate-type bin --crate-type rlib --crate-type dylib --crate-type cdylib --crate-type staticlib --crate-type proc-macro --print=sysroot --print=cfg (exit status: 1) --- stderr error: Error loading target specification: Could not find specification for target "x86_64-unknown-none-linuxkernel". Run rustc --print target-list for a list of built-in targets

I confirmed in rustc's update log that the target "x86_64-unknown-none-linuxkernel" was indeed removed after 1.68. )

When I used nightly-2022-11-03-x86_64-unknown-linux-gnu (corresponding to rustc 1.67), I got the following running results:

root@liu-9:~/mitosis-core# make clean & make km [1] 89474 rm -rf mitosis-kms/Cargo.lock rm -rf mitosis-kms/target cd mitosis-kms ; python build.py fork

error: could not compile proc-macro2 due to previous error warning: build failed, waiting for other jobs to finish... error: could not compile compiler_builtins due to previous error error: could not compile unicode-ident due to previous error error: could not compile libc due to previous error error: could not compile glob due to previous error error: could not compile version_check due to previous error error: could not compile regex-syntax due to previous error error: could not compile termcolor due to previous error error: could not compile quick-error due to previous error error: could not compile unicode-width due to previous error error: could not compile memchr due to previous error error: could not compile vec_map due to previous error error: could not compile spin due to previous error error: could not compile strsim due to previous error error: could not compile crossbeam-utils due to previous error error: could not compile futures-core due to previous error error: could not compile syn due to previous error error: could not compile bindgen due to previous error error: could not compile ansi_term due to previous error error: could not compile rustversion due to previous error error: could not compile futures-util due to previous error error: could not compile unicode-xid due to previous error error: could not compile failure_derive due to previous error error: could not compile paste due to previous error error: could not compile futures-channel due to previous error error: could not compile rustc-hash due to previous error error: could not compile shlex due to previous error error: could not compile bitflags due to previous error error: could not compile lazycell due to previous error error: could not compile cfg-if due to previous error error: could not compile peeking_take_while due to previous error error: could not compile autocfg due to previous error error: could not compile futures-task due to previous error error: could not compile log due to previous error /root/mitosis-core/mitosis-kms/Kbuild:11: recipe for target '/root/mitosis-core/mitosis-kms/target/x86_64-unknown-none-linuxkernel/debug/libfork.a' failed make[3]: [/root/mitosis-core/mitosis-kms/target/x86_64-unknown-none-linuxkernel/debug/libfork.a] Error 101 Makefile:1551: recipe for target 'module/root/mitosis-core/mitosis-kms' failed make[2]: [module/root/mitosis-core/mitosis-kms] Error 2 make[2]: Leaving directory '/usr/src/linux-headers-4.15.0-46-generic' Makefile:38: recipe for target 'all' failed make[1]: [all] Error 2 make[1]: Leaving directory '/root/mitosis-core/mitosis-kms' Traceback (most recent call last): File "build.py", line 36, in main(sys.argv) File "build.py", line 31, in main "TEST_PATH={}".format(path), File "build.py", line 15, in run subprocess.check_call(list(args), cwd=cwd, env=environ) File "/usr/lib/python3.6/subprocess.py", line 311, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['make', '-C', '/root/mitosis-core/mitosis-kms', 'TEST_NAME=fork', 'TEST_PATH=fork']' returned non-zero exit status 2. makefile:12: recipe for target 'km' failed make: [km] Error 1 [1]+ Done make clean

This error is also easy to solve. I modified split-debuginfo = 'off' in mitosis-core/mitosis-kms/fork/Cargo.toml. After that I ran it again using make clean & make km and a lot of errors appeared. I modified the mitosis-core/mitosis-kms/Kbuild

$(src)/target/$(TARGET)/debug/lib%.a: cargo_will_determine_dependencies
cd $(src)/$(TEST_PATH); CARGO_TARGET_DIR=../target $(CARGO) build -Z build-std=core,alloc --target=$(TARGET) --features "mitosis krdma-test cow use_rc " --no-default-features

for:

$(src)/target/$(TARGET)/debug/lib%.a: cargo_will_determine_dependencies
cd $(src)/$(TEST_PATH); CARGO_TARGET_DIR=../target $(CARGO) build **--jobs=1 --verbose** -Z build-std=core,alloc --target=$(TARGET) --features "mitosis krdma-test cow use_rc" --no-default-features **> error.log 2>&1**

I got the following error file, I put it in the attachment. error.log

The location where the error occurred is: Compiling crossbeam-utils v0.8.17 Running rustc --crate-name build_script_build --edition=2018 /root/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-utils-0.8.17/build.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C split-debuginfo=off --cfg 'feature="std"' -C metadata=6dab265580e1aaa6 -C extra-filename=-6dab265580e1aaa6 --out-dir /root/mitosis-core/mitosis-kms/fork/../target/debug/build/crossbeam-utils-6dab265580e1aaa6 -L dependency=/root/mitosis-core/mitosis-kms/fork/../target/debug/deps --cap-lints allow Running /root/mitosis-core/mitosis-kms/fork/../target/debug/build/crossbeam-utils-6dab265580e1aaa6/build-script-build Running rustc --crate-name syn --edition=2018 /root/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.109/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C split-debuginfo=off --cfg 'feature="clone-impls"' --cfg 'feature="default"' --cfg 'feature="derive"' --cfg 'feature="extra-traits"' --cfg 'feature="full"' --cfg 'feature="parsing"' --cfg 'feature="printing"' --cfg 'feature="proc-macro"' --cfg 'feature="quote"' --cfg 'feature="visit"' -C metadata=0ef28ab6ec5ed8d0 -C extra-filename=-0ef28ab6ec5ed8d0 --out-dir /root/mitosis-core/mitosis-kms/fork/../target/debug/deps -L dependency=/root/mitosis-core/mitosis-kms/fork/../target/debug/deps --extern proc_macro2=/root/mitosis-core/mitosis-kms/fork/../target/debug/deps/libproc_macro2-07e60ae63583f8d5.rmeta --extern quote=/root/mitosis-core/mitosis-kms/fork/../target/debug/deps/libquote-c11b7c3a87515dfa.rmeta --extern unicode_ident=/root/mitosis-core/mitosis-kms/fork/../target/debug/deps/libunicode_ident-6b7a6c518270e692.rmeta --cap-lints allow Running rustc --crate-name crossbeam_utils --edition=2018 /root/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-utils-0.8.17/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=2 -C embed-bitcode=no -C codegen-units=16 -C debug-assertions=on --cfg 'feature="std"' -C metadata=534cd6346c3d89d2 -C extra-filename=-534cd6346c3d89d2 --out-dir /root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps --target x86_64-unknown-none-linuxkernel -L dependency=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps -L dependency=/root/mitosis-core/mitosis-kms/fork/../target/debug/deps --extern 'noprelude:alloc=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/liballoc-dd3bb74c47f5e9c4.rmeta' --extern cfg_if=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libcfg_if-d6ae4eaa3a8b28e8.rmeta --extern 'noprelude:compiler_builtins=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libcompiler_builtins-ec3a9d9aa6f74f81.rmeta' --extern 'noprelude:core=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libcore-3c3b1f4ea09e76fb.rmeta' -Z unstable-options --cap-lints allow error[E0463]: can't find crate for std | = note: the x86_64-unknown-none-linuxkernel target may not support the standard library = note: std is required by crossbeam_utils because it does not declare #![no_std] = help: consider building the standard library from source with cargo build -Zbuild-std

error[E0463]: can't find crate for std --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-utils-0.8.17/src/lib.rs:90:24 90 pub(crate) use std::sync::{Arc, Condvar, Mutex}; ^^^ can't find crate

= note: the x86_64-unknown-none-linuxkernel target may not support the standard library = help: consider building the standard library from source with cargo build -Zbuild-std

error[E0463]: can't find crate for std --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-utils-0.8.17/src/sync/once_lock.rs:7:5 7 use std::sync::Once; ^^^ can't find crate

= note: the x86_64-unknown-none-linuxkernel target may not support the standard library = help: consider building the standard library from source with cargo build -Zbuild-std

error[E0463]: can't find crate for std --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-utils-0.8.17/src/sync/parker.rs:3:5 3 use std::fmt; ^^^ can't find crate

= note: the x86_64-unknown-none-linuxkernel target may not support the standard library = help: consider building the standard library from source with cargo build -Zbuild-std

error[E0463]: can't find crate for std --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-utils-0.8.17/src/sync/parker.rs:4:5 4 use std::marker::PhantomData; ^^^ can't find crate

= note: the x86_64-unknown-none-linuxkernel target may not support the standard library = help: consider building the standard library from source with cargo build -Zbuild-std

error[E0463]: can't find crate for std --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-utils-0.8.17/src/sync/parker.rs:5:5 5 use std::time::{Duration, Instant}; ^^^ can't find crate

= note: the x86_64-unknown-none-linuxkernel target may not support the standard library = help: consider building the standard library from source with cargo build -Zbuild-std

error[E0463]: can't find crate for std --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/crossbeam-utils-0.8.17/src/sync/wait_group.rs:2:5 2 use std::fmt; ^^^ can't find crate

= note: the x86_64-unknown-none-linuxkernel target may not support the standard library = help: consider building the standard library from source with cargo build -Zbuild-std

I use it every time before compiling

cd mitosis-core/mitosis-kms/fork
rm ~/.cargo/registry/cache/github.com-1ecc6299db9ec823/* && cargo clean --target-dir ../target && rm Cargo.lock

To eliminate the impact of crate caching.

Why can't find crate for std? How should I modify it to make the compilation pass correctly? We have three students here who all hope to continue research based on mitosis. This is greatly appreciated!

( I manually modified the versions of many dependencies in xx.toml. Finally, I got the following results when I ran make km:

Compiling KRdmaKit v0.1.0 (/root/mitosis-core/deps/krcore/KRdmaKit) Running rustc --crate-name KRdmaKit --edition=2018 /root/mitosis-core/deps/krcore/KRdmaKit/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=2 -C embed-bitcode=no -C codegen-units=16 -C debug-assertions=on --cfg 'feature="dct"' --cfg 'feature="kernel"' -C metadata=f2feb77b7d6ad1e0 -C extra-filename=-f2feb77b7d6ad1e0 --out-dir /root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps --target x86_64-unknown-none-linuxkernel -L dependency=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps -L dependency=/root/mitosis-core/mitosis-kms/fork/../target/debug/deps --extern 'noprelude:alloc=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/liballoc-9ced603fa71d9d6d.rmeta' --extern 'noprelude:compiler_builtins=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libcompiler_builtins-2b74463a1123f367.rmeta' --extern 'noprelude:core=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libcore-1de6f02c45ec0ce8.rmeta' --extern delegate=/root/mitosis-core/mitosis-kms/fork/../target/debug/deps/libdelegate-bd79b7824996c53c.so --extern futures_micro=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libfutures_micro-4c353ae8bb7e3319.rmeta --extern hashbrown=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libhashbrown-0b35d2ed94ba52fd.rmeta --extern lazy_static=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/liblazy_static-e8a8d5269ce9c5ce.rmeta --extern libc=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/liblibc-7af2676e6ddf03bd.rmeta --extern no_std_net=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libno_std_net-f9234d0514f7da73.rmeta --extern nostd_async=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libnostd_async-7189a9152b19d05e.rmeta --extern pin_utils=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libpin_utils-19a10d0df7f4b3df.rmeta --extern rdma_shim=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/librdma_shim-5a9350531b71068e.rmeta --extern thiserror_no_std=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libthiserror_no_std-00f5ab0082f0562d.rmeta -Z unstable-options -L native=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/build/rust-kernel-rdma-base-ab7aa8ed4829c369/out -L native=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/build/linux-kernel-module-6abcdab002bb9fde/out -L native=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/build/rust-kernel-linux-util-cba08ab43d214209/out error[E0433]: failed to resolve: use of undeclared crate or module std --> /root/mitosis-core/deps/krcore/KRdmaKit/src/memory_region.rs:13:5 | 13 | use std::ptr::null_mut; | ^^^ use of undeclared crate or module std

warning: unused import: libc::* --> /root/mitosis-core/deps/krcore/KRdmaKit/src/memory_region.rs:11:5 11 use libc::*; ^^^^^^^

= note: #[warn(unused_imports)] on by default

error[E0560]: struct rdma_shim::bindings::ib_qp_init_attr has no field named sq_sig_all --> /root/mitosis-core/deps/krcore/KRdmaKit/src/queue_pairs/builder.rs:383:13 383 sq_sig_all : 0, ^^^^^^^^^^ rdma_shim::bindings::ib_qp_init_attr does not have this field
= note: available fields are: `event_handler`, `qp_context`, `send_cq`, `recv_cq`, `srq` ... and 8 others

Some errors have detailed explanations: E0433, E0560. For more information about an error, try rustc --explain E0433. warning: KRdmaKit (lib) generated 1 warning error: could not compile KRdmaKit due to 2 previous errors; 1 warning emitted

Caused by: process didn't exit successfully: rustc --crate-name KRdmaKit --edition=2018 /root/mitosis-core/deps/krcore/KRdmaKit/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=2 -C embed-bitcode=no -C codegen-units=16 -C debug-assertions=on --cfg 'feature="dct"' --cfg 'feature="kernel"' -C metadata=f2feb77b7d6ad1e0 -C extra-filename=-f2feb77b7d6ad1e0 --out-dir /root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps --target x86_64-unknown-none-linuxkernel -L dependency=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps -L dependency=/root/mitosis-core/mitosis-kms/fork/../target/debug/deps --extern 'noprelude:alloc=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/liballoc-9ced603fa71d9d6d.rmeta' --extern 'noprelude:compiler_builtins=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libcompiler_builtins-2b74463a1123f367.rmeta' --extern 'noprelude:core=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libcore-1de6f02c45ec0ce8.rmeta' --extern delegate=/root/mitosis-core/mitosis-kms/fork/../target/debug/deps/libdelegate-bd79b7824996c53c.so --extern futures_micro=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libfutures_micro-4c353ae8bb7e3319.rmeta --extern hashbrown=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libhashbrown-0b35d2ed94ba52fd.rmeta --extern lazy_static=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/liblazy_static-e8a8d5269ce9c5ce.rmeta --extern libc=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/liblibc-7af2676e6ddf03bd.rmeta --extern no_std_net=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libno_std_net-f9234d0514f7da73.rmeta --extern nostd_async=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libnostd_async-7189a9152b19d05e.rmeta --extern pin_utils=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libpin_utils-19a10d0df7f4b3df.rmeta --extern rdma_shim=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/librdma_shim-5a9350531b71068e.rmeta --extern thiserror_no_std=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/deps/libthiserror_no_std-00f5ab0082f0562d.rmeta -Z unstable-options -L native=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/build/rust-kernel-rdma-base-ab7aa8ed4829c369/out -L native=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/build/linux-kernel-module-6abcdab002bb9fde/out -L native=/root/mitosis-core/mitosis-kms/fork/../target/x86_64-unknown-none-linuxkernel/debug/build/rust-kernel-linux-util-cba08ab43d214209/out (exit status: 1) /root/mitosis-core/mitosis-kms/Kbuild:14: recipe for target '/root/mitosis-core/mitosis-kms/target/x86_64-unknown-none-linuxkernel/debug/libfork.a' failed make[3]: [/root/mitosis-core/mitosis-kms/target/x86_64-unknown-none-linuxkernel/debug/libfork.a] Error 101 Makefile:1551: recipe for target 'module/root/mitosis-core/mitosis-kms' failed make[2]: [module/root/mitosis-core/mitosis-kms] Error 2 make[2]: Leaving directory '/usr/src/linux-headers-4.15.0-46-generic' Makefile:38: recipe for target 'all' failed make[1]: [all] Error 2 make[1]: Leaving directory '/root/mitosis-core/mitosis-kms' Traceback (most recent call last): File "build.py", line 36, in main(sys.argv) File "build.py", line 31, in main "TEST_PATH={}".format(path), File "build.py", line 15, in run subprocess.check_call(list(args), cwd=cwd, env=environ) File "/usr/lib/python2.7/subprocess.py", line 190, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['make', '-C', '/root/mitosis-core/mitosis-kms', 'TEST_NAME=fork', 'TEST_PATH=fork']' returned non-zero exit status 2 makefile:12: recipe for target 'km' failed make: [km] Error 1

What should we do next, thank you very much!

)

wxdwfc commented 10 months ago

Can you please try the following:

  1. remove mitosis-kms/fork/Cargo.lock
  2. retry with our default toolchain, e.g., by setting rustup default nightly-2022-02-04-x86_64-unknown-linux-gnu. (Be sure to use a clean version from the git)

In general, we currently don't recommend modifying the tool chain. If you want a specific rust version to use, please start an issue and we can see whether we can support so, thanks.

LiuMicheal commented 10 months ago

Fine, when I use nightly-2022-02-04-x86_64-unknown-linux-gnu to try again, I meet this error:

warning: /root/mitosis-core/mitosis/Cargo.toml: dependency (x86_64) specified without providing a local path, Git repository, or version to use. This will be considered an error in future versions Updating crates.io index Downloading crates ... Downloaded hashbrown v0.12.0 Downloaded cc v1.0.69 Downloaded libc v0.2.116 Downloaded unicode-width v0.1.8 Downloaded memchr v2.4.1 Downloaded compiler_builtins v0.1.67 error: package regex-automata v0.4.3 cannot be built because it requires rustc 1.65 or newer, while the currently active rustc version is 1.60.0-nightly

nightly-2022-02-04-x86_64-unknown-linux-gnu corresponds to rustc 1.60. regex-automata v0.4.3 seems to be an intermediate crate that some crates depend on during the compilation process. Its version is too high and cannot be compiled with rustc 1.60. Should I modify some versions?

wxdwfc commented 10 months ago

May I ask you which branch do you use?

LiuMicheal commented 10 months ago

Fine, main branch.

wxdwfc commented 10 months ago

It's quite weird. The main branch should work fine, and the fork does not rely on regex-automata.

Does the error happens when you build module with make km at the root path of the project on the main branch?

If the error still happens, can you check the dependencies tree of the built target? e.g., cd mitosis-kms/fork; cargo tree

wangtianxia-sjtu commented 10 months ago

That is a weird error. But can you please first remove .cargo/ and .rustup/ in your $HOME directory and then reinstall the rust toolchain. After that, run make clean && make km again with rust version nightly-2022-02-04-x86_64-unknown-linux-gnu. Be sure to use our latest version of main!

LiuMicheal commented 10 months ago

@wxdwfc When I build module with make km at the root path of the project on the main branch, the errors happened again. The mitosis project does not depend on regex-automata, but I feel that some other crates from crate.io need to depend on regex-automata in the new version, causing cargo build to introduce regex-automata when negotiating versions between various crates. Here is the cargo tree:

root@liu-9:~/mitosis-core/mitosis-kms/fork# cargo tree Downloaded errno v0.3.8 Downloaded memoffset v0.6.5 Downloaded nix v0.23.2 Downloaded tempfile v3.8.1 Downloaded rustix v0.38.28 Downloaded fastrand v2.0.1 Downloaded linux-raw-sys v0.4.12 Downloaded 7 crates (2.1 MB) in 5.99s (largest was linux-raw-sys at 1.5 MB) fork v0.1.0 (/root/mitosis-core/mitosis-kms/fork) ├── krdma-test v0.1.0 (proc-macro) (/root/mitosis-core/deps/krcore/rust-kernel-rdma/krdma-test) │ ├── quote v1.0.33 │ │ └── proc-macro2 v1.0.70 │ │ └── unicode-ident v1.0.12 │ └── syn v1.0.109 │ ├── proc-macro2 v1.0.70 () │ ├── quote v1.0.33 () │ └── unicode-ident v1.0.12 ├── mitosis v0.1.0 (/root/mitosis-core/mitosis) │ ├── bitflags v1.3.2 │ ├── cfg-if v0.1.10 │ ├── hashbrown v0.12.0 (/root/mitosis-core/deps/hashbrown) │ │ └── ahash v0.7.7 │ │ ├── getrandom v0.2.11 │ │ │ ├── cfg-if v1.0.0 │ │ │ └── libc v0.2.151 │ │ └── once_cell v1.19.0 │ │ [build-dependencies] │ │ └── version_check v0.9.4 │ ├── lazy_static v1.4.0 │ │ └── spin v0.5.2 │ ├── mitosis-macros v0.1.0 (proc-macro) (/root/mitosis-core/mitosis-macros) │ │ ├── proc-macro2 v1.0.70 () │ │ ├── quote v1.0.33 () │ │ └── syn v1.0.109 () │ ├── mitosis-protocol v0.1.0 (/root/mitosis-core/mitosis-user-libs/mitosis-protocol) │ ├── os-network v0.1.0 (/root/mitosis-core/os-network) │ │ ├── KRdmaKit v0.1.0 (/root/mitosis-core/deps/krcore/KRdmaKit) │ │ │ ├── async-task v4.6.0 │ │ │ ├── concurrent-queue v2.4.0 │ │ │ │ └── crossbeam-utils v0.8.17 │ │ │ │ └── cfg-if v1.0.0 │ │ │ ├── core_affinity v0.7.6 │ │ │ │ ├── libc v0.2.151 │ │ │ │ └── num_cpus v1.16.0 │ │ │ │ └── libc v0.2.151 │ │ │ ├── crossbeam v0.8.2 │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ ├── crossbeam-channel v0.5.9 │ │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ │ └── crossbeam-utils v0.8.17 () │ │ │ │ ├── crossbeam-deque v0.8.4 │ │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ │ ├── crossbeam-epoch v0.9.16 │ │ │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ │ │ ├── crossbeam-utils v0.8.17 () │ │ │ │ │ │ └── memoffset v0.9.0 │ │ │ │ │ │ [build-dependencies] │ │ │ │ │ │ └── autocfg v1.1.0 │ │ │ │ │ │ [build-dependencies] │ │ │ │ │ │ └── autocfg v1.1.0 │ │ │ │ │ └── crossbeam-utils v0.8.17 () │ │ │ │ ├── crossbeam-epoch v0.9.16 () │ │ │ │ ├── crossbeam-queue v0.3.9 │ │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ │ └── crossbeam-utils v0.8.17 () │ │ │ │ └── crossbeam-utils v0.8.17 () │ │ │ ├── delegate v0.11.0 (proc-macro) │ │ │ │ ├── proc-macro2 v1.0.70 () │ │ │ │ ├── quote v1.0.33 () │ │ │ │ └── syn v2.0.41 │ │ │ │ ├── proc-macro2 v1.0.70 () │ │ │ │ ├── quote v1.0.33 () │ │ │ │ └── unicode-ident v1.0.12 │ │ │ ├── failure v0.1.8 │ │ │ │ ├── backtrace v0.3.69 │ │ │ │ │ ├── addr2line v0.21.0 │ │ │ │ │ │ └── gimli v0.28.1 │ │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ │ ├── libc v0.2.151 │ │ │ │ │ ├── miniz_oxide v0.7.1 │ │ │ │ │ │ └── adler v1.0.2 │ │ │ │ │ ├── object v0.32.1 │ │ │ │ │ │ └── memchr v2.6.4 │ │ │ │ │ └── rustc-demangle v0.1.23 │ │ │ │ │ [build-dependencies] │ │ │ │ │ └── cc v1.0.83 │ │ │ │ │ └── libc v0.2.151 │ │ │ │ └── failure_derive v0.1.8 (proc-macro) │ │ │ │ ├── proc-macro2 v1.0.70 () │ │ │ │ ├── quote v1.0.33 () │ │ │ │ ├── syn v1.0.109 () │ │ │ │ └── synstructure v0.12.6 │ │ │ │ ├── proc-macro2 v1.0.70 () │ │ │ │ ├── quote v1.0.33 () │ │ │ │ ├── syn v1.0.109 () │ │ │ │ └── unicode-xid v0.2.4 │ │ │ ├── futures v0.3.29 │ │ │ │ ├── futures-channel v0.3.29 │ │ │ │ │ ├── futures-core v0.3.29 │ │ │ │ │ └── futures-sink v0.3.29 │ │ │ │ ├── futures-core v0.3.29 │ │ │ │ ├── futures-executor v0.3.29 │ │ │ │ │ ├── futures-core v0.3.29 │ │ │ │ │ ├── futures-task v0.3.29 │ │ │ │ │ └── futures-util v0.3.29 │ │ │ │ │ ├── futures-channel v0.3.29 () │ │ │ │ │ ├── futures-core v0.3.29 │ │ │ │ │ ├── futures-io v0.3.29 │ │ │ │ │ ├── futures-macro v0.3.29 (proc-macro) │ │ │ │ │ │ ├── proc-macro2 v1.0.70 () │ │ │ │ │ │ ├── quote v1.0.33 () │ │ │ │ │ │ └── syn v2.0.41 () │ │ │ │ │ ├── futures-sink v0.3.29 │ │ │ │ │ ├── futures-task v0.3.29 │ │ │ │ │ ├── memchr v2.6.4 │ │ │ │ │ ├── pin-project-lite v0.2.13 │ │ │ │ │ ├── pin-utils v0.1.0 │ │ │ │ │ └── slab v0.4.9 │ │ │ │ │ [build-dependencies] │ │ │ │ │ └── autocfg v1.1.0 │ │ │ │ ├── futures-io v0.3.29 │ │ │ │ ├── futures-sink v0.3.29 │ │ │ │ ├── futures-task v0.3.29 │ │ │ │ └── futures-util v0.3.29 () │ │ │ ├── futures-micro v0.4.0 │ │ │ ├── hashbrown v0.9.1 │ │ │ │ └── ahash v0.4.8 │ │ │ ├── lazy_static v1.4.0 () │ │ │ ├── libc v0.2.151 │ │ │ ├── no-std-net v0.4.0 (/root/mitosis-core/deps/krcore/rust-kernel-rdma/deps/no-std-net) │ │ │ ├── nostd_async v0.3.1 │ │ │ ├── once_cell v1.19.0 │ │ │ ├── pin-utils v0.1.0 │ │ │ ├── rdma-shim v0.1.0 (/root/mitosis-core/deps/krcore/rdma-shim) │ │ │ │ └── rust-kernel-rdma-base v0.1.0 (/root/mitosis-core/deps/krcore/rust-kernel-rdma/rust-kernel-rdma-base) │ │ │ │ ├── linux-kernel-module v0.1.0 (/root/mitosis-core/deps/krcore/rust-kernel-rdma/deps/rust-kernel-module) │ │ │ │ │ └── bitflags v1.3.2 │ │ │ │ │ [build-dependencies] │ │ │ │ │ ├── bindgen v0.54.0 │ │ │ │ │ │ ├── bitflags v1.3.2 │ │ │ │ │ │ ├── cexpr v0.4.0 │ │ │ │ │ │ │ └── nom v5.1.3 │ │ │ │ │ │ │ └── memchr v2.6.4 │ │ │ │ │ │ │ [build-dependencies] │ │ │ │ │ │ │ └── version_check v0.9.4 │ │ │ │ │ │ ├── cfg-if v0.1.10 │ │ │ │ │ │ ├── clang-sys v0.29.3 │ │ │ │ │ │ │ ├── glob v0.3.1 │ │ │ │ │ │ │ ├── libc v0.2.151 │ │ │ │ │ │ │ └── libloading v0.5.2 │ │ │ │ │ │ │ [build-dependencies] │ │ │ │ │ │ │ └── cc v1.0.83 () │ │ │ │ │ │ │ [build-dependencies] │ │ │ │ │ │ │ └── glob v0.3.1 │ │ │ │ │ │ ├── clap v2.34.0 │ │ │ │ │ │ │ ├── ansi_term v0.12.1 │ │ │ │ │ │ │ ├── atty v0.2.14 │ │ │ │ │ │ │ │ └── libc v0.2.151 │ │ │ │ │ │ │ ├── bitflags v1.3.2 │ │ │ │ │ │ │ ├── strsim v0.8.0 │ │ │ │ │ │ │ ├── textwrap v0.11.0 │ │ │ │ │ │ │ │ └── unicode-width v0.1.11 │ │ │ │ │ │ │ ├── unicode-width v0.1.11 │ │ │ │ │ │ │ └── vec_map v0.8.2 │ │ │ │ │ │ ├── env_logger v0.7.1 │ │ │ │ │ │ │ ├── atty v0.2.14 () │ │ │ │ │ │ │ ├── humantime v1.3.0 │ │ │ │ │ │ │ │ └── quick-error v1.2.3 │ │ │ │ │ │ │ ├── log v0.4.20 │ │ │ │ │ │ │ ├── regex v1.10.2 │ │ │ │ │ │ │ │ ├── aho-corasick v1.1.2 │ │ │ │ │ │ │ │ │ └── memchr v2.6.4 │ │ │ │ │ │ │ │ ├── memchr v2.6.4 │ │ │ │ │ │ │ │ ├── regex-automata v0.4.3 │ │ │ │ │ │ │ │ │ ├── aho-corasick v1.1.2 () │ │ │ │ │ │ │ │ │ ├── memchr v2.6.4 │ │ │ │ │ │ │ │ │ └── regex-syntax v0.8.2 │ │ │ │ │ │ │ │ └── regex-syntax v0.8.2 │ │ │ │ │ │ │ └── termcolor v1.4.0 │ │ │ │ │ │ ├── lazy_static v1.4.0 () │ │ │ │ │ │ ├── lazycell v1.3.0 │ │ │ │ │ │ ├── log v0.4.20 │ │ │ │ │ │ ├── peeking_take_while v0.1.2 │ │ │ │ │ │ ├── proc-macro2 v1.0.70 () │ │ │ │ │ │ ├── quote v1.0.33 () │ │ │ │ │ │ ├── regex v1.10.2 () │ │ │ │ │ │ ├── rustc-hash v1.1.0 │ │ │ │ │ │ ├── shlex v0.1.1 │ │ │ │ │ │ └── which v3.1.1 │ │ │ │ │ │ └── libc v0.2.151 │ │ │ │ │ ├── cc v1.0.83 () │ │ │ │ │ └── shlex v0.1.1 │ │ │ │ ├── no-std-net v0.4.0 (/root/mitosis-core/deps/krcore/rust-kernel-rdma/deps/no-std-net) │ │ │ │ ├── paste v1.0.14 (proc-macro) │ │ │ │ └── rust-kernel-linux-util v0.1.0 (/root/mitosis-core/deps/krcore/rust-kernel-rdma/rust-kernel-linux-util) │ │ │ │ ├── cfg-if v1.0.0 │ │ │ │ ├── linux-kernel-module v0.1.0 (/root/mitosis-core/deps/krcore/rust-kernel-rdma/deps/rust-kernel-module) () │ │ │ │ └── no-std-net v0.4.0 (/root/mitosis-core/deps/krcore/rust-kernel-rdma/deps/no-std-net) │ │ │ │ [build-dependencies] │ │ │ │ ├── bindgen v0.54.0 () │ │ │ │ ├── cc v1.0.83 () │ │ │ │ └── shlex v0.1.1 │ │ │ │ [build-dependencies] │ │ │ │ ├── bindgen v0.54.0 () │ │ │ │ ├── cc v1.0.83 () │ │ │ │ └── shlex v0.1.1 │ │ │ ├── spin v0.9.8 │ │ │ │ └── lock_api v0.4.11 │ │ │ │ └── scopeguard v1.2.0 │ │ │ │ [build-dependencies] │ │ │ │ └── autocfg v1.1.0 │ │ │ └── thiserror-no-std v2.0.2 │ │ │ └── thiserror-impl-no-std v2.0.2 (proc-macro) │ │ │ ├── proc-macro2 v1.0.70 () │ │ │ ├── quote v1.0.33 () │ │ │ └── syn v1.0.109 () │ │ ├── hashbrown v0.9.1 () │ │ ├── lazy_static v1.4.0 () │ │ ├── rust-kernel-linux-util v0.1.0 (/root/mitosis-core/deps/krcore/rust-kernel-rdma/rust-kernel-linux-util) () │ │ └── rust-kernel-rdma-base v0.1.0 (/root/mitosis-core/deps/krcore/rust-kernel-rdma/rust-kernel-rdma-base) () │ ├── rust-kernel-linux-util v0.1.0 (/root/mitosis-core/deps/krcore/rust-kernel-rdma/rust-kernel-linux-util) () │ ├── rust-kernel-rdma-base v0.1.0 (/root/mitosis-core/deps/krcore/rust-kernel-rdma/rust-kernel-rdma-base) () │ ├── static_assertions v1.1.0 │ ├── thiserror-no-std v2.0.2 () │ └── x86_64 v0.14.11 │ ├── bit_field v0.10.2 │ ├── bitflags v2.4.1 │ ├── rustversion v1.0.14 (proc-macro) │ └── volatile v0.4.6 │ [build-dependencies] │ ├── bindgen v0.54.0 () │ ├── cc v1.0.83 () │ └── shlex v0.1.1 └── mitosis-macros v0.1.0 (proc-macro) (/root/mitosis-core/mitosis-macros) () [build-dependencies] ├── bindgen v0.54.0 () ├── cc v1.0.83 (*) └── shlex v0.1.1 [dev-dependencies] ├── kernel-module-testlib v0.1.0 (/root/mitosis-core/deps/krcore/testlib) │ ├── libc v0.2.151 │ └── tempfile v3.8.1 │ ├── cfg-if v1.0.0 │ ├── fastrand v2.0.1 │ └── rustix v0.38.28 │ ├── bitflags v2.4.1 │ └── linux-raw-sys v0.4.12 └── mitosis-rust-client v0.1.0 (/root/mitosis-core/mitosis-user-libs/mitosis-rust-client) ├── libc v0.2.151 ├── mitosis-protocol v0.1.0 (/root/mitosis-core/mitosis-user-libs/mitosis-protocol) └── nix v0.23.2 ├── bitflags v1.3.2 ├── cfg-if v1.0.0 ├── libc v0.2.151 └── memoffset v0.6.5 [build-dependencies] └── autocfg v1.1.0

@wangtianxia-sjtu Sure, I confirmed that I am using the latest version of main. Firstly I use cd mitosis-core/mitosis-kms/fork; rm -r ~/.cargo/ && rm -r ~/.rustup/ to clear cache related to rust.

Then I use the commands in mitosis-core/doc/setmp.md: curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh source $HOME/.cargo/env rustup default nightly-2022-02-04-x86_64-unknown-linux-gnu rustup component add rust-src to reinstall the rust toolchain.

Then I use cd mitosis-core/mitosis-kms/fork; cargo clean --target-dir ../target && rm Cargo.lock to clear the intermediate results produced by the previous compilation. The error occurs again: error: package regex v1.10.2 cannot be built because it requires rustc 1.65 or newer, while the currently active rustc version is 1.60.0-nightly

In addition, I use rm ~/.cargo/registry/cache/github.com-1ecc6299db9ec823/* && cargo clean --target-dir ../target && rm Cargo.lock every time before restarting make clean && make km and found that there are other kinds of errors. For example: error: package crossbeam-utils v0.8.17 cannot be built because it requires rustc 1.61 or newer, while the currently active rustc version is 1.60.0-nightly

error: package memchr v2.6.4 cannot be built because it requires rustc 1.61 or newer, while the currently active rustc version is 1.60.0-nightly

error: package crossbeam-channel v0.5.9 cannot be built because it requires rustc 1.61 or newer, while the currently active rustc version is 1.60.0-nightly ...

Is it because the rustc 1.60 of nightly-2022-02-04-x86_64-unknown-linux-gnu is a bit old?

wxdwfc commented 10 months ago

@LiuMicheal "Then I use cd mitosis-core/mitosis-kms/fork; cargo clean --target-dir ../target && rm Cargo.lock to clear the intermediate results produced by the previous compilation. The error occurs again:" Please try not remove the Cargo.lock to compile it: the version of regex-syntax described in our provided Cargo.lock should work with rustc-1.6.

LiuMicheal commented 10 months ago

Oh, I made a mistake, I shouldn't remove Cargo.lock and then let it regenerate. However, when I use the provided Cargo.lock with rustc-1.60 and *cd mitosis-core/mitosis-kms/fork; rm ~/.cargo/registry/cache/github.com-1ecc6299db9ec823/ && cargo clean --target-dir ../target and make km**, I got this error:

root@liu-9:~/mitosis-core# make km cd mitosis-kms ; python build.py fork

all possible versions conflict with previously selected packages.

previously selected package once_cell v1.12.0 ... which satisfies dependency once_cell = "^1.8" (locked to 1.12.0) of package ahash v0.7.6 ... which satisfies dependency ahash = "^0.7.0" (locked to 0.7.6) of package hashbrown v0.12.0 (/root/mitosis-core/deps/hashbrown) ... which satisfies path dependency hashbrown (locked to 0.12.0) of package mitosis v0.1.0 (/root/mitosis-core/mitosis) ... which satisfies path dependency mitosis (locked to 0.1.0) of package fork v0.1.0 (/root/mitosis-core/mitosis-kms/fork)

failed to select a version for once_cell which could resolve this conflict /root/mitosis-core/mitosis-kms/Kbuild:12: recipe for target '/root/mitosis-core/mitosis-kms/target/x86_64-unknown-none-linuxkernel/debug/libfork.a' failed

It seems that hashbrown caused a version conflict of once_cell. As for hashbrown in mitosis-core/deps, I am using the branch as shown in the picture, which is consistent with the main branch of mitosis. mitosis-deps

Even the cargo tree cannot be generated:

root@liu-9:~/mitosis-core/mitosis-kms/fork# cargo tree Updating crates.io index error: failed to select a version for once_cell. ... required by package KRdmaKit v0.1.0 (/root/mitosis-core/deps/krcore/KRdmaKit) ... which satisfies path dependency KRdmaKit (locked to 0.1.0) of package os-network v0.1.0 (/root/mitosis-core/os-network) ... which satisfies path dependency os-network (locked to 0.1.0) of package mitosis v0.1.0 (/root/mitosis-core/mitosis) ... which satisfies path dependency mitosis (locked to 0.1.0) of package fork v0.1.0 (/root/mitosis-core/mitosis-kms/fork) versions that meet the requirements ^1.16.0 are: 1.19.0, 1.18.0, 1.17.2, 1.17.1, 1.17.0, 1.16.0

all possible versions conflict with previously selected packages.

previously selected package once_cell v1.12.0 ... which satisfies dependency once_cell = "^1.8" (locked to 1.12.0) of package ahash v0.7.6 ... which satisfies dependency ahash = "^0.7.0" (locked to 0.7.6) of package hashbrown v0.12.0 (/root/mitosis-core/deps/hashbrown) ... which satisfies path dependency hashbrown (locked to 0.12.0) of package mitosis v0.1.0 (/root/mitosis-core/mitosis) ... which satisfies path dependency mitosis (locked to 0.1.0) of package fork v0.1.0 (/root/mitosis-core/mitosis-kms/fork)

failed to select a version for once_cell which could resolve this conflict

wxdwfc commented 10 months ago

May be updating the hash brown version of KRCore to 0.12 may address the issue?

LiuMicheal commented 10 months ago

I use:

[dependencies]
...
# hashbrown = "0.9"
hashbrown = "0.12" # modified by me 2023-12-20
..

to update all toml in mitosis-core/deps/krcore. Then I use the provided Cargo.lock with rustc-1.60 and cd mitosis-core/mitosis-kms/fork; cargo clean --target-dir ../target and make km, I got this same error again:

root@liu-9:~/mitosis-core# make km cd mitosis-kms ; python build.py fork

all possible versions conflict with previously selected packages.

previously selected package once_cell v1.12.0 ... which satisfies dependency once_cell = "^1.8" (locked to 1.12.0) of package ahash v0.7.6 ... which satisfies dependency ahash = "^0.7.0" (locked to 0.7.6) of package hashbrown v0.12.0 (/root/mitosis-core/deps/hashbrown) ... which satisfies path dependency hashbrown (locked to 0.12.0) of package mitosis v0.1.0 (/root/mitosis-core/mitosis) ... which satisfies path dependency mitosis (locked to 0.1.0) of package fork v0.1.0 (/root/mitosis-core/mitosis-kms/fork)

failed to select a version for once_cell which could resolve this conflict /root/mitosis-core/mitosis-kms/Kbuild:12: recipe for target '/root/mitosis-core/mitosis-kms/target/x86_64-unknown-none-linuxkernel/debug/libfork.a' failed

wxdwfc commented 10 months ago

Thank you for your information. Can you please further provide the complete cargo tree information so I can check which crates depend on once_cell? In my cargo tree, I only find hashbrown uses it.

LiuMicheal commented 10 months ago

Sure. However, when I use cd mitosis-core/mitosis-kms/fork; cargo tree command, I found the cargo tree cannot be generated with the error:

root@liu-9:~/mitosis-core/mitosis-kms/fork# cargo tree Updating crates.io index error: failed to select a version for once_cell. ... required by package KRdmaKit v0.1.0 (/root/mitosis-core/deps/krcore/KRdmaKit) ... which satisfies path dependency KRdmaKit (locked to 0.1.0) of package os-network v0.1.0 (/root/mitosis-core/os-network) ... which satisfies path dependency os-network (locked to 0.1.0) of package mitosis v0.1.0 (/root/mitosis-core/mitosis) ... which satisfies path dependency mitosis (locked to 0.1.0) of package fork v0.1.0 (/root/mitosis-core/mitosis-kms/fork) versions that meet the requirements ^1.16.0 are: 1.19.0, 1.18.0, 1.17.2, 1.17.1, 1.17.0, 1.16.0

all possible versions conflict with previously selected packages.

previously selected package once_cell v1.12.0 ... which satisfies dependency once_cell = "^1.8" (locked to 1.12.0) of package ahash v0.7.6 ... which satisfies dependency ahash = "^0.7.0" (locked to 0.7.6) of package hashbrown v0.12.0 (/root/mitosis-core/deps/hashbrown) ... which satisfies path dependency hashbrown (locked to 0.12.0) of package mitosis v0.1.0 (/root/mitosis-core/mitosis) ... which satisfies path dependency mitosis (locked to 0.1.0) of package fork v0.1.0 (/root/mitosis-core/mitosis-kms/fork)

failed to select a version for once_cell which could resolve this conflict

Thank you for your answers again and again.

wxdwfc commented 10 months ago

Thank you for your feedback! After some digging I found that it is caused by our lossy assignment of crate versions in KRdmaKit and also other projects. Sorry about that.

I have updated one Cargo.lock to fix it. Can you see it works here? Be sure to rename it to Cargo.lock and place it at mitosis-kms.fork/. Cargo-lock.txt

wxdwfc commented 10 months ago

Note that due to random version select of Cargo, the lock may not fix all the problem... but, if you meet another, please kindly remind me so: I can give you instruction on how to solve them :)

A complete fix requires some time (and we are working on this), but an on-demand fixes won't take much time. Thanks.

LiuMicheal commented 10 months ago

Thank you so much for instructions! @wxdwfc @wangtianxia-sjtu I am very interested in mitosis and it is my honor to join this project and contribute some updates to mitosis. I have a lot of new ideas that I’m trying out :)

wxdwfc commented 10 months ago

Thank you so much for your interests. Please kindly let us know if the above instructions fix your problem.