Since CreateBucketIfNotExists() can return nil when it gets an error, accessing FillPercent must be done after a nil check, not to cause a panic.
@@ -373,10 +373,10 @@ func defragdb(odb, tmpdb *bolt.DB, limit int) error {
}
tmpb, berr := tmptx.CreateBucketIfNotExists(next)
- tmpb.FillPercent = 0.9 // for seq write in for each
if berr != nil {
return berr
+ tmpb.FillPercent = 0.9 // for seq write in for each
b.ForEach(func(k, v []byte) error {
count++