Skip to content

Mercury decode panics when mem_limit is set to None #745

Description

@el-ev

It seems to be introduced a long time ago. I'm bisecting.

Steps to reproduce:

  1. navigate to mercury/src/internal/pack/decode.rs:test_pack_decode_with_ref_delta
  2. set te second parameter of Pack::new() to None
  3. run the test and observe the crash

Environment:

cargo 1.85.0-nightly (20a443231 2024-12-06)
release: 1.85.0-nightly
commit-hash: 20a443231846b81c7b909691ec3f15eb173f2b18
commit-date: 2024-12-06
host: x86_64-unknown-linux-gnu
libgit2: 1.8.1 (sys:0.19.0 vendored)
libcurl: 8.9.0-DEV (sys:0.4.74+curl-8.9.0 vendored ssl:OpenSSL/1.1.1w)
ssl: OpenSSL 1.1.1w  11 Sep 2023
os: Arch Linux [64-bit]

Stacktrace:

---- internal::pack::decode::tests::test_pack_decode_without_delta stdout ----
thread '<unnamed>' panicked at mercury/src/internal/pack/cache.rs:84:35:
called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
stack backtrace:
   0: rust_begin_unwind
             at /rustc/21fe748be15271ea5804e0507cd699b675efe038/library/std/src/panicking.rs:681:5
   1: core::panicking::panic_fmt
             at /rustc/21fe748be15271ea5804e0507cd699b675efe038/library/core/src/panicking.rs:75:14
   2: core::result::unwrap_failed
             at /rustc/21fe748be15271ea5804e0507cd699b675efe038/library/core/src/result.rs:1699:5
   3: core::result::Result<T,E>::unwrap
             at /home/iz0/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:1104:23
   4: mercury::internal::pack::cache::Caches::generate_temp_path
             at ./src/internal/pack/cache.rs:84:13
   5: <mercury::internal::pack::cache::Caches as mercury::internal::pack::cache::_Cache>::insert
             at ./src/internal/pack/cache.rs:156:34
   6: mercury::internal::pack::decode::<impl mercury::internal::pack::Pack>::cache_obj_and_process_waitlist
             at ./src/internal/pack/decode.rs:535:23
   7: mercury::internal::pack::decode::<impl mercury::internal::pack::Pack>::decode::{{closure}}
             at ./src/internal/pack/decode.rs:391:33
   8: <F as threadpool::FnBox>::call_box
             at /home/iz0/.cargo/registry/src/index.crates.io-6f17d22bba15001f/threadpool-1.8.1/src/lib.rs:95:9
   9: threadpool::spawn_in_pool::{{closure}}
 
thread '<unnamed>' panicked at mercury/src/internal/pack/cache.rs:150:49:
called `Result::unwrap()` on an `Err` value: PoisonError { .. }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions