Pijul git causes corruption on crash

So I tried importing the linux git repo for a laugh:

INFO Importing commit e63f8f439de010b6227c0c9c6f56e2c44dbe5dae: [PATCH] ppc64: no prefetch for NULL pointers

For prefetches of NULL (as when walking a short linked list), PPC64 will in
some cases take a performance hit.  The hardware needs to do the TLB walk,
and said walk will always miss, which means (up to) two L2 misses as
penalty.  This seems to hurt overall performance, so for NULL pointers skip
the prefetch alltogether.

Signed-off-by: Olof Johansson <olof@austin.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

INFO Importing commit 4bfa437cf137fc653b286c110d849ff1ad2aee2b: [PATCH] mips: remove obsolete VR41xx RTC function from vr41xx.h

This patch had removed obsolete VR41xx RTC function from vr41xx.h .  I
forgot to put this change in "update VR41xx RTC support".

Signed-off-by: Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
Cc: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

Well, this is embarrassing.

pijul had a problem and crashed. To help us diagnose the problem you can send us a crash report.

We have generated a report file at "/run/user/1000/report-0684192d-c97f-425e-89bf-853f0398f511.toml". Submit an issue or email with the subject of "pijul Crash Report" and include the report as an attachment.

- Authors: Pierre-Étienne Meunier <pe@pijul.org>

We take privacy seriously, and do not perform any automated error collection. In order to improve the software, we rely on people to submit reports.

Thank you kindly!

bcachefs on  rebalance-pause-for-copygc [$?] via ❄️  impure (nix-shell) took 37s
❯ git checkout v5.18
error: Your local changes to the following files would be overwritten by checkout:
Please commit your changes or stash them before you switch branches.
name = 'pijul'
operating_system = 'unix:Unknown'
crate_version = '1.0.0-beta.1'
explanation = '''
Panic occurred in file '/build/pijul-1.0.0-beta.1-vendor.tar.gz/git2/src/diff.rs' at line 624
cause = 'unknown mode: 33204'
method = 'Panic'
backtrace = '''
   0: 0x55a23abfb985 - git2::diff::DiffFile::mode::h4c27c33d3335c72e
   1: 0x55a23a7f22b1 - pijul::commands::git::import_commit::h5961f20128c63336
   2: 0x55a23a7ed566 - pijul::commands::git::import::ha3305dc1564733aa
   3: 0x55a23a7e9a3f - pijul::commands::git::Git::run::h4666e257bb90c911
   4: 0x55a23a86fcaf - pijul::run::{{closure}}::he7df3e0c0255879c
   5: 0x55a23a83df55 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::h99ea943084a28fa3
   6: 0x55a23a969d8d - std::thread::local::LocalKey<T>::with::h03dd8d3b381c1594
   7: 0x55a23aa2058a - tokio::park::thread::CachedParkThread::block_on::h334f4a759a656d1e
   8: 0x55a23aa84aad - tokio::runtime::thread_pool::ThreadPool::block_on::h22749b7e180823fb
   9: 0x55a23a88cf61 - tokio::runtime::Runtime::block_on::h5c2e1ffcaaf82b20
  10: 0x55a23a8fd81e - pijul::main::h29691cfaa0c6ea3f
  11: 0x55a23aa11553 - std::sys_common::backtrace::__rust_begin_short_backtrace::h28f51920d607feb6
  12: 0x55a23a879c49 - std::rt::lang_start::{{closure}}::h2c1b5c41d6fd0190
  13: 0x55a23b007581 - std::rt::lang_start_internal::hda73c7e8894fc483
  14: 0x55a23a8fd912 - main
  15: 0x7fa396068237 - __libc_start_call_main
  16: 0x7fa3960682f5 - __libc_start_main_impl
  17: 0x55a23a776321 - _start
  18:        0x0 - <unresolved>'''

Interesting… the panic is in libgit2, not in libpijul. I’ll have a look, would you mind reporting this on pijul/pijul - Discussions?