The sound distributed version control system

#478 Crash report

Closed on July 31, 2021
fabian on July 12, 2021
name = 'pijul'
operating_system = 'unix:Unknown'
crate_version = '1.0.0-alpha.49'
explanation = '''
Panic occurred in file '/home/fabian/Development/Open/pijul/libpijul/src/record.rs' at line 1327
'''
cause = 'assertion failed: parent.flag().contains(EdgeFlags::FOLDER)'
method = 'Panic'
backtrace = '''

   0: 0x555b2152b8c2 - libpijul::record::Builder::delete_obsolete_children::h16c639a72ea6e717
   1: 0x555b2152d66e - libpijul::record::Builder::record::h21ac06d969d41c1d
   2: 0x555b215d4e69 - pijul::commands::pending::hc97fba9bf1020a4b
   3: 0x555b216919bf - pijul::commands::pushpull::Pull::run::{{closure}}::hfc9ccda9093a87ae
   4: 0x555b216d9a75 - pijul::run::{{closure}}::h8cfbc16dd001d148
   5: 0x555b2167464b - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::h4b00c001358f88fd
   6: 0x555b215ab14f - tokio::park::thread::CachedParkThread::block_on::h1731628daf80c67d
   7: 0x555b21704acd - tokio::runtime::thread_pool::ThreadPool::block_on::hc6cc1c57b8e0aac5
   8: 0x555b214a30d0 - tokio::runtime::Runtime::block_on::h976e8d0960cac27b
   9: 0x555b21627566 - pijul::main::hf337b9ecbbb6d41f
  10: 0x555b2163a623 - std::sys_common::backtrace::__rust_begin_short_backtrace::hc4a7972b560a91e9
  11: 0x555b2163bbe9 - std::rt::lang_start::{{closure}}::h1a4d3f8e964546de
  12: 0x555b21c9f1d7 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h57e2a071d427b24c
                at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/core/src/ops/function.rs:259
                 - std::panicking::try::do_call::h81cbbe0c3b30a28e
                at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:381
                 - std::panicking::try::hbeeb95b4e1f0a876
                at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panicking.rs:345
                 - std::panic::catch_unwind::h59c48ccb40a0bf20
                at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/panic.rs:396
                 - std::rt::lang_start_internal::ha53ab63f88fee728
                at /rustc/e1884a8e3c3e813aada8254edfa120e85bf5ffca/library/std/src/rt.rs:51
  13: 0x555b21627622 - main
  14: 0x7fe4c5f80ded - __libc_start_main
  15: 0x555b2142a2ba - _start
                at /build/glibc-2.32/csu/../sysdeps/x86_64/start.S:120
  16:        0x0 - <unresolved>'''
pmeunier on July 13, 2021

Interesting, thanks for the report. Can you give me a way to reproduce?

pmeunier on July 13, 2021

I’m also interested in a tarball of the repository, you can send it to pe@pijul.org

fabian on July 13, 2021

Ah shit, already deleted it. I was getting “too many files open error” so I started applying a pijul pull on batches of 5; after applying the second to last batch the error appeared. :/

After that error I deleted the repo and cloned from scratch.

pmeunier on July 13, 2021

(I should really implement a live reload of comments on this page).

Is this an old repository, or a recently-cloned one? Is this a public repo?

fabian on July 13, 2021

It is this repo, was pulling new pijul changes.

pmeunier on July 13, 2021

Ok, was it an old-ish instance you had from months ago, in which you pulled new patches?

I agree that the “too many files open” issue is problematic, it even kills the Nest sometimes, and wouldn’t be too hard to fix.

fabian on July 14, 2021

Not really old-ish, about 15 changes behind the repo. (Was still tagged as alpha.49) Maybe a week at most.

pmeunier on July 21, 2021

Ok, this is a bit scary. I know you don’t have the repository anymore, but do you remember when you first cloned it?

fabian on July 23, 2021

Probably about a month or so ago, some days after the format last changed. It was 15 changes behind nest when I tried to pull by batches of 5.

pmeunier on July 31, 2021

News about this: your report prompted me to read the source code of Sanakirja once again, and to run a few extra tests to try and increase the coverage. I found one pretty serious bug, which could cause both a leak (i.e. parts of the database file not referenced anywhere, and not listed as free), and a double free.

I just published a new version of Pijul with the fix. Thanks again!

pmeunier closed this discussion on July 31, 2021