The sound distributed version control system

#790 pijul Crash Report: pulling changes made with main

Opened by jaredj on April 14, 2023
jaredj on April 14, 2023

What I did:

  1. I built Pijul #UMF6N7CZA4CTSPKQ on a FreeBSD laptop.
  2. I obtained my dot-emacs repository, which lives at https://nest.pijul.com/jaredj/dot-emacs.
  3. I made and pushed three changes. one two three.
  4. Back on my Debian machine, with Pijul 1.0.0-beta.4, I pulled the three changes.
  5. Pijul crashed on my Debian machine, and I’m going to attach the crash report here.
jaredj on April 14, 2023

I don’t see any attach function, so I’m going to paste it.

name = "pijul"
operating_system = "Debian 12 (bookworm) [64-bit]"
crate_version = "1.0.0-beta.4"
explanation = """
Panic occurred in file '/home/jaredj/.cargo/registry/src/github.com-1ecc6299db9ec823/libpijul-1.0.0-beta.4/src/output/output.rs' at line 306
"""
cause = "called `Result::unwrap()` on an `Err` value: Any { .. }"
method = "Panic"
backtrace = """

   0: 0x55cf50067d33 - core::result::unwrap_failed::h065c02f906ca4578
                at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/result.rs:1791
   1: 0x55cf502d050e - libpijul::output::output::output_repository::h55f698d23430d99e
   2: 0x55cf502d5fec - libpijul::output::output::output_repository_no_pending::h053679e94c7dab04
   3: 0x55cf5027992a - pijul::commands::pushpull::Pull::run::{{closure}}::h9086b2471b75eb85
   4: 0x55cf502a2e22 - pijul::main::{{closure}}::h83dbade13c895921
   5: 0x55cf503d22a1 - tokio::runtime::park::CachedParkThread::block_on::hdc8c6f2f259d9d40
   6: 0x55cf5008e839 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::hb70536460d6042ea
   7: 0x55cf50202eed - pijul::main::h16a85fca695ecab8
   8: 0x55cf50166013 - std::sys_common::backtrace::__rust_begin_short_backtrace::h8f464fd584ad30e4
   9: 0x55cf501bd0d9 - std::rt::lang_start::{{closure}}::hc111c069351d2278
  10: 0x55cf50b6beab - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h8cbb48ae40ddb046
                at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/core/src/ops/function.rs:286
                 - std::panicking::try::do_call::h92db802eb38b49b7
                at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/std/src/panicking.rs:483
                 - std::panicking::try::ha8949d2082cf3644
                at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/std/src/panicking.rs:447
                 - std::panic::catch_unwind::h5e34c1f8a5992ed9
                at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/std/src/panic.rs:137
                 - std::rt::lang_start_internal::{{closure}}::hea52a0bb3f8ff16a
                at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/std/src/rt.rs:148
                 - std::panicking::try::do_call::h5bc358faf3d68a8b
                at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/std/src/panicking.rs:483
                 - std::panicking::try::h675304212928379d
                at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/std/src/panicking.rs:447
                 - std::panic::catch_unwind::h7ce3ad349ed5c844
                at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/std/src/panic.rs:137
                 - std::rt::lang_start_internal::hcd7e45acd25ab5ab
                at /rustc/90743e7298aca107ddaa0c202a4d3604e29bfeb6/library/std/src/rt.rs:148
  11: 0x55cf50203095 - main
  12: 0x7f0c31c4618a - __libc_start_call_main
                at ./csu/../sysdeps/nptl/libc_start_call_main.h:58
  13: 0x7f0c31c46245 - __libc_start_main_impl
                at ./csu/../csu/libc-start.c:381
  14: 0x55cf50067ec1 - _start
  15:        0x0 - <unresolved>"""
tankf33der on April 15, 2023

Try to run pijul-tests on freebsd. Feel free to open new issue if find something wrong. Tests lives here: https://git.envs.net/mpech/pijul-tests

jaredj on April 15, 2023

Thanks, will do! In the meantime, I built Pijul #UMF6N7CZA4CTSPKQ on my Linux machine, pulled the same three changes, and it did not crash, but gave this output:

jaredj@needle:~/dot-emacs$ pijul pull
  Downloading changes [==================================================] 3/3
             Applying [==================================================] 3/3
   Completing changes [==================================================] 0/0
Outputting repository ↖

There were conflicts:

  - Deletion conflict in "init.el" starting on line 283
  - Order conflict in ".ignore" starting on line 20
  - Order conflict in "init.el" starting on line 280
  - Order conflict in ".ignore" starting on line 20
  - Deletion conflict in "init.el" starting on line 283
  - Order conflict in "init.el" starting on line 280

I haven’t looked at the conflicts in detail but I’m pretty sure this is exactly what it should have done.

tankf33der on April 15, 2023

BTW, I have tried ping pong records thru nest between x64 and x86 machines without problems.

jaredj on April 15, 2023

Well - I don’t know the exact version I was pulling with, because I don’t see any version tagged 1.0.0-beta.4; but I had used

cargo install pijul --version '1.0.0-beta.4'

to install it. crates.io says that was released on March 1. Anyhow - the point is, I was pulling from nest.pijul.com using an older version than I had pushed from, and once I used the newest version it worked right.

I don’t know what sort of backward or forward compatibility guarantees are supposed to exist at this point in pijul’s life; so there may be no issue remaining here.