bazelbuild / bazelbuild/rules_rust
New cargo-bazel crashes when there is more than one manifest specified in crates_repository()
- Dominant language
- Starlark
- Stars
- 843
- Forks
- 651
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 15
Description
```BUILD
crates_repository(
name = "crate_index",
lockfile = "//:Cargo.Bazel.lock",
manifests = [
"//vrst:Cargo.toml",
"//vrst-test:Cargo.toml", # works if removed
],
generator_urls = CARGO_BAZEL_URLS,
generator_sha256s = CARGO_BAZEL_SHA256S,
)
```
```
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/splicing/splicer.rs:77:86
stack backtrace:
0: 0x101775101 - std::backtrace_rs::backtrace::libunwind::trace::h0b624e35bf84187c
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x101775101 - std::backtrace_rs::backtrace::trace_unsynchronized::h435d9bd636904605
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x101775101 - std::sys_common::backtrace::_print_fmt::h3ca407d645e7e73d
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/sys_common/backtrace.rs:67:5
3: 0x101775101 - ::fmt::h4f26ffad025fdbe8
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/sys_common/backtrace.rs:46:22
4: 0x10179acdb - core::fmt::write::h0a9937d83d3944c1
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/fmt/mod.rs:1168:17
5: 0x10176fe78 - std::io::Write::write_fmt::hfaf2e2e92eda8127
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/io/mod.rs:1660:15
6: 0x101777ca7 - std::sys_common::backtrace::_print::h11335bd900abe1ce
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/sys_common/backtrace.rs:49:5
7: 0x101777ca7 - std::sys_common::backtrace::print::hdf5291c87f745042
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/sys_common/backtrace.rs:36:9
8: 0x101777ca7 - std::panicking::default_hook::{{closure}}::hc11e9b8d348e68b0
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:211:50
9: 0x1017778b5 - std::panicking::default_hook::h1d26ec4d0d63be04
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:228:9
10: 0x101778330 - std::panicking::rust_panic_with_hook::hef4f5e524db188b3
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:606:17
11: 0x101778034 - std::panicking::begin_panic_handler::{{closure}}::h6e8805ea2351af89
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:500:13
12: 0x101775577 - std::sys_common::backtrace::__rust_end_short_backtrace::hd383ade987b76f63
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/sys_common/backtrace.rs:139:18
13: 0x101777d4a - rust_begin_unwind
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:498:5
14: 0x1017bd09f - core::panicking::panic_fmt::hb58956db718d5b79
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/panicking.rs:116:14
15: 0x1017bcff7 - core::panicking::panic::h709cad72bd37e428
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/panicking.rs:48:5
16: 0x101385852 - cargo_bazel::splicing::splicer::Splicer::splice_workspace::h33ea040dc0493581
17: 0x101345662 - cargo_bazel::cli::splice::splice::h6c946835e9166f2a
18: 0x101246507 - cargo_bazel::main::hcb1159589c2c2287
19: 0x1012462d6 - std::sys_common::backtrace::__rust_begin_short_backtrace::h960ef598b3397f95
20: 0x1012463a1 - std::rt::lang_start::{{closure}}::h9b5eb31b224e45a4
21: 0x1017747ce - core::ops::function::impls:: for &F>::call_once::h1d1e9294d7151cb0
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/core/src/ops/function.rs:259:13
22: 0x1017747ce - std::panicking::try::do_call::h315943602cc1e70c
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:406:40
23: 0x1017747ce - std::panicking::try::h5be753f80fffd492
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:370:19
24: 0x1017747ce - std::panic::catch_unwind::h9fdcb02c74b07e26
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panic.rs:133:14
25: 0x1017747ce - std::rt::lang_start_internal::{{closure}}::h1558447834abc29f
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/rt.rs:128:48
26: 0x1017747ce - std::panicking::try::do_call::h5721bf6e49d6926d
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:406:40
27: 0x1017747ce - std::panicking::try::hee7cffb35a5e550d
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panicking.rs:370:19
28: 0x1017747ce - std::panic::catch_unwind::hf45e91e6006ab16e
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/panic.rs:133:14
29: 0x1017747ce - std::rt::lang_start_internal::h64086fc6655bfbe8
at /rustc/9d1b2106e23b1abd32fce1f17267604a5102f57a/library/std/src/rt.rs:128:20
30: 0x101246559 - _main
```
Contributor guide
Research direction
Start with src/splicing/splicer.rs at the reported line and reproduce the crates_repository configuration using both //vrst:Cargo.toml and //vrst-test:Cargo.toml. Trace why the second manifest reaches an unwrap on None; done means multiple manifests no longer cause cargo-bazel to panic.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100