The sound distributed version control system

#907 pijul pull --to-channel crashes if you use it on a blank channel: Block error: Position

Opened by dblsaiko on March 22, 2024
dblsaiko on March 22, 2024

This is with the latest state from the repo.

% target/debug/pijul clone https://nest.pijul.com/pijul/pijul Pijul
Repository created at /Users/saiko/Src/pijul/Pijul
[...]
% cd Pijul 
% ../target/debug/pijul channel new test
% ../target/debug/pijul pull --to-channel=test
Downloading changes  [==================================================] 1052/1052 [00:00:06]
[2024-03-22T21:01:31Z ERROR pijul] Error: Block error: Position { change: ChangeId(3P4NMRS7DJRW4), pos: ChangePosition(L64(2)) }
Error: Block error: Position { change: ChangeId(3P4NMRS7DJRW4), pos: ChangePosition(L64(2)) }
tankf33der on March 23, 2024

repeated on main. +1

tankf33der on March 27, 2024

Finally found working combination:

cd
pijul init p1
cd p1
pijul channel new t
pijul pull -a --to-channel t /root/pijul
dblsaiko on March 31, 2024

Tried to fix it with these and the pull succeeds but now corrupts the repo database. Not sure if that’s another bug or this fix is bad. Probably the latter since I have no idea what I’m doing :^)

"name" = "pijul"
"operating_system" = "Mac OS 14.4.1 [64-bit]"
"crate_version" = "1.0.0-beta.9"
"explanation" = """
Panic occurred in file '/private/tmp/nix-build-pijul-1.0.0-beta.9.drv-0/ivbxhc4hqywq2cb3wq2h8lbdbrfmfp81-source/libpijul/src/pristine/mod.rs' at line 757
"""
"cause" = "assertion failed: components.is_empty()"
"method" = "Panic"
"backtrace" = """

   0: 0x101975690 - _rust_begin_unwind
   1: 0x1019ecf60 - core::panicking::panic_fmt::h36a7abbdf3b00cb1
   2: 0x1019ecfd4 - core::panicking::panic::h7af515ee7c59afa3
   3: 0x10104a250 - libpijul::pristine::tree_path::h38e163bf56ba55c5
   4: 0x1012374e4 - libpijul::record::Recorded::record_deleted_file::h0d3514d1dfa18837
   5: 0x10122ec84 - libpijul::record::Builder::delete_obsolete_children::ha133f9d0e97eb40f
   6: 0x10122f6a0 - libpijul::record::Builder::record::hdb9e33fc79c30d87
   7: 0x1012c327c - pijul::commands::reset::has_unrecorded_changes::h961a0498d9ffc9d8
   8: 0x1012c15e0 - pijul::commands::reset::Reset::reset::hd29f83fe6be3b92d
   9: 0x1012c0928 - pijul::commands::reset::Reset::run::h8a6c79c40281b5cd
  10: 0x10111ca34 - tokio::runtime::park::CachedParkThread::block_on::{{closure}}::h6accb37691211bbd
  11: 0x10111be14 - tokio::runtime::park::CachedParkThread::block_on::h92315969211a79a7
  12: 0x100fc5330 - tokio::runtime::context::runtime::enter_runtime::h3621c109c6636e08
  13: 0x10107dea8 - tokio::runtime::runtime::Runtime::block_on::hf57e9f5d693ba220
  14: 0x10120dd28 - pijul::main::h6edb48e412717498
  15: 0x10120ff24 - std::sys_common::backtrace::__rust_begin_short_backtrace::hfbd607ed705abf5c
  16: 0x101138f08 - std::rt::lang_start::{{closure}}::hbfe4248015574cb0
  17: 0x10197557c - std::panicking::try::h8408a6df79f92b61
  18: 0x10196cf74 - std::rt::lang_start_internal::ha925d3c7d3436bff
  19: 0x101138eec - std::rt::lang_start::h2518134d5d5ab621
  20: 0x10120ddd8 - _main"""
dblsaiko added a change on March 31, 2024
IWKAHCXL3QNBWTOO7GPYEMBZX7SCVGFLHO6ZPHCVKFMCTRVFC25AC
dblsaiko added a change on March 31, 2024
2LUGQKW5Q2JQHS5HTQBAYBJC3JDRGW7SUDR4GJDCGYXVGRPCEVVAC
dblsaiko added a change on March 31, 2024
ET3TYKXLCUX6TLNDNY7EWRECA6PQIUYNZHYDOQ6LTWW6ZLZ7AR4QC
tankf33der on April 1, 2024

Still crashing? Do you know steps?

dblsaiko on April 1, 2024

With these changes, the pull completes successfully (using same commands as in original message), and you can view the log of the channel that now has them inside, but afterwards running pijul diff (and other commands) crashes with the above trace.

tankf33der on April 1, 2024

Test suite passed anyway.