aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstlpmo <hq-STLPMO@chinaunicom.cn>2019-12-24 16:36:15 +0800
committerstlpmo <hq-STLPMO@chinaunicom.cn>2019-12-24 16:36:15 +0800
commitf300c352669d4ac1aa4ea9ed9fc5feb4e9f7224b (patch)
tree8d0f6e4b15b225f7ae563ba457860da9cd176c2e
parenta18f62bbe7e5e477fd891849b44ec5a25d8988d2 (diff)
downloadseaweedfs-f300c352669d4ac1aa4ea9ed9fc5feb4e9f7224b.tar.xz
seaweedfs-f300c352669d4ac1aa4ea9ed9fc5feb4e9f7224b.zip
resolve issue : when the host disk full, the volume server will core dump
-rw-r--r--weed/storage/volume_create.go5
-rw-r--r--weed/storage/volume_create_linux.go5
-rw-r--r--weed/storage/volume_create_windows.go11
3 files changed, 16 insertions, 5 deletions
diff --git a/weed/storage/volume_create.go b/weed/storage/volume_create.go
index ee41c50a9..ffcb246a4 100644
--- a/weed/storage/volume_create.go
+++ b/weed/storage/volume_create.go
@@ -11,8 +11,11 @@ import (
func createVolumeFile(fileName string, preallocate int64, memoryMapSizeMB uint32) (backend.BackendStorageFile, error) {
file, e := os.OpenFile(fileName, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
+ if e != nil {
+ return nil, e
+ }
if preallocate > 0 {
glog.V(0).Infof("Preallocated disk space for %s is not supported", fileName)
}
- return backend.NewDiskFile(file), e
+ return backend.NewDiskFile(file), nil
}
diff --git a/weed/storage/volume_create_linux.go b/weed/storage/volume_create_linux.go
index 5fafbe924..ee599ac32 100644
--- a/weed/storage/volume_create_linux.go
+++ b/weed/storage/volume_create_linux.go
@@ -12,9 +12,12 @@ import (
func createVolumeFile(fileName string, preallocate int64, memoryMapSizeMB uint32) (backend.BackendStorageFile, error) {
file, e := os.OpenFile(fileName, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
+ if e != nil {
+ return nil, e
+ }
if preallocate != 0 {
syscall.Fallocate(int(file.Fd()), 1, 0, preallocate)
glog.V(0).Infof("Preallocated %d bytes disk space for %s", preallocate, fileName)
}
- return backend.NewDiskFile(file), e
+ return backend.NewDiskFile(file), nil
}
diff --git a/weed/storage/volume_create_windows.go b/weed/storage/volume_create_windows.go
index 9e5d8f87d..e1c0b961f 100644
--- a/weed/storage/volume_create_windows.go
+++ b/weed/storage/volume_create_windows.go
@@ -12,17 +12,22 @@ import (
)
func createVolumeFile(fileName string, preallocate int64, memoryMapSizeMB uint32) (backend.BackendStorageFile, error) {
-
if preallocate > 0 {
glog.V(0).Infof("Preallocated disk space for %s is not supported", fileName)
}
if memoryMapSizeMB > 0 {
file, e := os_overloads.OpenFile(fileName, windows.O_RDWR|windows.O_CREAT, 0644, true)
- return memory_map.NewMemoryMappedFile(file, memoryMapSizeMB), e
+ if e != nil {
+ return nil, e
+ }
+ return memory_map.NewMemoryMappedFile(file, memoryMapSizeMB), nil
} else {
file, e := os_overloads.OpenFile(fileName, windows.O_RDWR|windows.O_CREAT|windows.O_TRUNC, 0644, false)
- return backend.NewDiskFile(file), e
+ if e != nil {
+ return nil, e
+ }
+ return backend.NewDiskFile(file), nil
}
}