Fixing channel drop (cleanup in other tables + order of reference drop)

[?]
Apr 26, 2021, 1:43 PM
VSOT2QH5OFG6XX6P7TXZF62IDA2FL7PSEPA2YJCAEFQNJTD5MMLAC

Dependencies

  • [2] NGCTMCDP cleaning up the deps and revdeps of unused changes after a channel drop
  • [3] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).
  • [4] VO5OQW4W Removing anyhow in libpijul
  • [5] TZ42DX3B Properly dropping a channel
  • [6] I24UEJQL Various post-fire fixes

Change contents

  • edit in libpijul/src/pristine/sanakirja.rs at line 1796
    [3.1137]
    [3.1137]
    btree::del(&mut self.txn, &mut self.channels, &name, None)?;
  • edit in libpijul/src/pristine/sanakirja.rs at line 1816
    [2.825]
    [2.825]
    let mut deps = Vec::new();
  • replacement in libpijul/src/pristine/sanakirja.rs at line 1818
    [2.871][2.871:1028]()
    while btree::del(&mut self.txn, &mut self.dep, ch, None)? {}
    while btree::del(&mut self.txn, &mut self.revdep, ch, None)? {}
    [2.871]
    [2.1028]
    for x in btree::iter(&self.txn, &self.dep, Some((ch, None)))? {
    let (k, v) = x?;
    if k > ch {
    break
    }
    deps.push((*k, *v));
    }
    for (k, v) in deps.drain(..) {
    btree::del(&mut self.txn, &mut self.revdep, &k, Some(&v))?;
    btree::del(&mut self.txn, &mut self.revdep, &v, Some(&k))?;
    }
  • edit in libpijul/src/pristine/sanakirja.rs at line 1834
    [3.1359]
    [3.1359]
    Ok(true)
    } else {
    Ok(false)
  • edit in libpijul/src/pristine/sanakirja.rs at line 1838
    [3.1369][3.1369:1441]()
    Ok(btree::del(&mut self.txn, &mut self.channels, &name, None)?)
  • edit in libpijul/src/pristine/sanakirja.rs at line 1995
    [3.16714][3.574593:574650](),[3.574593][3.574593:574650]()
    debug!("Commit_channel. This is not too safe.");