Skip to content

Commit 68bfc85

Browse files
committed
fix importer to wait db close
1 parent 73b21dd commit 68bfc85

File tree

1 file changed

+22
-7
lines changed

1 file changed

+22
-7
lines changed

import.go

+22-7
Original file line numberDiff line numberDiff line change
@@ -82,19 +82,24 @@ func (i *Importer) writeNode(node *Node) error {
8282
i.batchSize++
8383
if i.batchSize >= maxBatchSize {
8484
// Wait for previous batch.
85-
var err error
8685
if i.inflightCommit != nil {
87-
err = <-i.inflightCommit
86+
err := <-i.inflightCommit
87+
if err != nil {
88+
return err
89+
}
90+
8891
i.inflightCommit = nil
8992
}
90-
if err != nil {
91-
return err
92-
}
93+
9394
result := make(chan error)
9495
i.inflightCommit = result
9596
go func(batch store.Batch) {
96-
defer batch.Close()
97-
result <- batch.Write()
97+
if err := batch.WriteSync(); err != nil {
98+
result <- err
99+
return
100+
}
101+
102+
result <- batch.Close()
98103
}(i.batch)
99104
i.batch = i.tree.ndb.db.NewBatch()
100105
i.batchSize = 0
@@ -223,6 +228,16 @@ func (i *Importer) Commit() error {
223228
return err
224229
}
225230

231+
// Wait for previous batch.
232+
if i.inflightCommit != nil {
233+
err := <-i.inflightCommit
234+
if err != nil {
235+
return err
236+
}
237+
238+
i.inflightCommit = nil
239+
}
240+
226241
err = i.batch.WriteSync()
227242
if err != nil {
228243
return err

0 commit comments

Comments
 (0)