aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-01-30 11:02:17 +0100
committerDmitry Vyukov <dvyukov@google.com>2017-01-30 11:02:17 +0100
commit8b2c1cb5bbde0ed2b055645d04ee3a2874569805 (patch)
tree3427131ab938143f867d0bc0882a35f19eaacb08
parent4ee789185bc215d62e9cfa92e23a8de2760789cb (diff)
syz-hub: don't flush global corpus after every addition
We already flush in addInputs, no need to flush in addInput. Also add some logging on start as it can be slow.
-rw-r--r--syz-hub/state/state.go10
1 files changed, 7 insertions, 3 deletions
diff --git a/syz-hub/state/state.go b/syz-hub/state/state.go
index 94a18b3ea..eb718cd73 100644
--- a/syz-hub/state/state.go
+++ b/syz-hub/state/state.go
@@ -48,10 +48,12 @@ func Make(dir string) (*State, error) {
os.MkdirAll(st.dir, 0750)
var err error
+ Logf(0, "reading corpus...")
st.Corpus, err = db.Open(filepath.Join(st.dir, "corpus.db"))
if err != nil {
Fatalf("failed to open corpus database: %v", err)
}
+ Logf(0, "read %v programs", len(st.Corpus.Records))
for key, rec := range st.Corpus.Records {
if _, err := prog.CallSet(rec.Val); err != nil {
Logf(0, "bad file in corpus: can't parse call set: %v", err)
@@ -88,11 +90,16 @@ func Make(dir string) (*State, error) {
if st.seq < mgr.seq {
st.seq = mgr.seq
}
+ Logf(0, "reading %v corpus...", mgr.name)
mgr.Corpus, err = db.Open(filepath.Join(mgr.dir, "corpus.db"))
if err != nil {
return nil, fmt.Errorf("failed to open manager corpus database %v: %v", mgr.dir, err)
}
+ Logf(0, "read %v programs", len(mgr.Corpus.Records))
}
+ Logf(0, "purging corpus...")
+ st.purgeCorpus()
+ Logf(0, "done, %v programs", len(st.Corpus.Records))
return st, err
}
@@ -202,9 +209,6 @@ func (st *State) addInput(mgr *Manager, input []byte) {
mgr.Corpus.Save(sig, nil, 0)
if _, ok := st.Corpus.Records[sig]; !ok {
st.Corpus.Save(sig, input, st.seq)
- if err := st.Corpus.Flush(); err != nil {
- Logf(0, "failed to flush corpus database: %v", err)
- }
}
}