aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-04-08 23:12:37 -0700
committerChris Lu <chris.lu@gmail.com>2020-04-08 23:12:37 -0700
commitbb78ab991553fed64116b673836452c831044702 (patch)
tree2178a7a3e36e279f28e9fdb3fdadb855628207ca
parent8764bdb9df65b2061b56640c6583ab076ae7d70e (diff)
downloadseaweedfs-bb78ab991553fed64116b673836452c831044702.tar.xz
seaweedfs-bb78ab991553fed64116b673836452c831044702.zip
wait for master to be aware of the failed volumes
fix https://github.com/chrislusf/seaweedfs/issues/1268
-rw-r--r--weed/filesys/dirty_page.go18
1 files changed, 10 insertions, 8 deletions
diff --git a/weed/filesys/dirty_page.go b/weed/filesys/dirty_page.go
index e2e628407..77eae927e 100644
--- a/weed/filesys/dirty_page.go
+++ b/weed/filesys/dirty_page.go
@@ -125,16 +125,18 @@ func (pages *ContinuousDirtyPages) saveExistingLargestPageToStorage() (chunk *fi
return nil, false, nil
}
- chunk, err = pages.saveToStorage(maxList.ToReader(), maxList.Offset(), maxList.Size())
- if err == nil {
- hasSavedData = true
- glog.V(3).Infof("%s saveToStorage [%d,%d) %s", pages.f.fullpath(), maxList.Offset(), maxList.Offset()+maxList.Size(), chunk.FileId)
- } else {
- glog.V(0).Infof("%s saveToStorage [%d,%d): %v", pages.f.fullpath(), maxList.Offset(), maxList.Offset()+maxList.Size(), err)
- return
+ for {
+ chunk, err = pages.saveToStorage(maxList.ToReader(), maxList.Offset(), maxList.Size())
+ if err == nil {
+ hasSavedData = true
+ glog.V(3).Infof("%s saveToStorage [%d,%d) %s", pages.f.fullpath(), maxList.Offset(), maxList.Offset()+maxList.Size(), chunk.FileId)
+ time.Sleep(5 * time.Second)
+ } else {
+ glog.V(0).Infof("%s saveToStorage [%d,%d): %v", pages.f.fullpath(), maxList.Offset(), maxList.Offset()+maxList.Size(), err)
+ return
+ }
}
- return
}
func (pages *ContinuousDirtyPages) saveToStorage(reader io.Reader, offset int64, size int64) (*filer_pb.FileChunk, error) {