aboutsummaryrefslogtreecommitdiffstats
path: root/eth
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2018-08-08 22:16:38 +0800
committerPéter Szilágyi <peterke@gmail.com>2018-08-09 17:33:30 +0800
commit11bbc660823246b9fc25e4b994121e30a9f17306 (patch)
tree04d6661dd289de85dc66eb29ccb6b9e5083139d5 /eth
parent8051a0768a2af6c36b04ffa6fb225a45986d9b89 (diff)
downloaddexon-11bbc660823246b9fc25e4b994121e30a9f17306.tar
dexon-11bbc660823246b9fc25e4b994121e30a9f17306.tar.gz
dexon-11bbc660823246b9fc25e4b994121e30a9f17306.tar.bz2
dexon-11bbc660823246b9fc25e4b994121e30a9f17306.tar.lz
dexon-11bbc660823246b9fc25e4b994121e30a9f17306.tar.xz
dexon-11bbc660823246b9fc25e4b994121e30a9f17306.tar.zst
dexon-11bbc660823246b9fc25e4b994121e30a9f17306.zip
eth, trie: fix tracer GC which accidentally pruned the metaroot
Diffstat (limited to 'eth')
-rw-r--r--eth/api_tracer.go8
1 files changed, 6 insertions, 2 deletions
diff --git a/eth/api_tracer.go b/eth/api_tracer.go
index 623e5ed1b..722e2a6e3 100644
--- a/eth/api_tracer.go
+++ b/eth/api_tracer.go
@@ -297,7 +297,9 @@ func (api *PrivateDebugAPI) traceChain(ctx context.Context, start, end *types.Bl
database.TrieDB().Reference(root, common.Hash{})
}
// Dereference all past tries we ourselves are done working with
- database.TrieDB().Dereference(proot)
+ if proot != (common.Hash{}) {
+ database.TrieDB().Dereference(proot)
+ }
proot = root
// TODO(karalabe): Do we need the preimages? Won't they accumulate too much?
@@ -526,7 +528,9 @@ func (api *PrivateDebugAPI) computeStateDB(block *types.Block, reexec uint64) (*
return nil, err
}
database.TrieDB().Reference(root, common.Hash{})
- database.TrieDB().Dereference(proot)
+ if proot != (common.Hash{}) {
+ database.TrieDB().Dereference(proot)
+ }
proot = root
}
nodes, imgs := database.TrieDB().Size()