mirror of
https://github.com/mimblewimble/grin.git
synced 2025-05-13 04:31:15 +03:00
Fix #235 sumtree size double-counting rm log
This commit is contained in:
parent
8f78b74d67
commit
8f0373b81e
2 changed files with 4 additions and 2 deletions
store
|
@ -383,10 +383,9 @@ where
|
|||
/// sync'd size.
|
||||
pub fn unpruned_size(&self) -> io::Result<u64> {
|
||||
let total_shift = self.pruned_nodes.get_shift(::std::u64::MAX).unwrap();
|
||||
let rm_len = self.remove_log.len() as u64;
|
||||
let record_len = 32 + T::sum_len() as u64;
|
||||
let sz = self.hashsum_file.size()?;
|
||||
Ok(sz / record_len + rm_len + total_shift)
|
||||
Ok(sz / record_len + total_shift)
|
||||
}
|
||||
|
||||
/// Syncs all files to disk. A call to sync is required to ensure all the
|
||||
|
|
|
@ -129,6 +129,7 @@ fn sumtree_reload() {
|
|||
backend.sync().unwrap();
|
||||
backend.check_compact(1).unwrap();
|
||||
backend.sync().unwrap();
|
||||
assert_eq!(backend.unpruned_size().unwrap(), mmr_size);
|
||||
|
||||
// prune some more to get rm log data
|
||||
{
|
||||
|
@ -136,11 +137,13 @@ fn sumtree_reload() {
|
|||
pmmr.prune(5, 1).unwrap();
|
||||
}
|
||||
backend.sync().unwrap();
|
||||
assert_eq!(backend.unpruned_size().unwrap(), mmr_size);
|
||||
}
|
||||
|
||||
// create a new backend and check everything is kosher
|
||||
{
|
||||
let mut backend = store::sumtree::PMMRBackend::new(data_dir).unwrap();
|
||||
assert_eq!(backend.unpruned_size().unwrap(), mmr_size);
|
||||
{
|
||||
let pmmr = PMMR::at(&mut backend, mmr_size);
|
||||
assert_eq!(root, pmmr.root());
|
||||
|
|
Loading…
Add table
Reference in a new issue