diff options
| author | Chris Lu <chrislusf@users.noreply.github.com> | 2019-12-24 07:07:41 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-12-24 07:07:41 -0800 |
| commit | 37a836c8a7c20af59f755ac52a001cb01dbcf8cd (patch) | |
| tree | 3d0f0b5c8156aa314121e562a601b3bcae6b2915 | |
| parent | 1ad34a2487a3e8625f5fea82e38431d0e54794b6 (diff) | |
| parent | f300c352669d4ac1aa4ea9ed9fc5feb4e9f7224b (diff) | |
| download | seaweedfs-37a836c8a7c20af59f755ac52a001cb01dbcf8cd.tar.xz seaweedfs-37a836c8a7c20af59f755ac52a001cb01dbcf8cd.zip | |
Merge pull request #1167 from stlpmo-jn/volume_server_core_dump
resolve issue : create volume on no free space disk, the volume server core dump
| -rw-r--r-- | weed/storage/volume_create.go | 5 | ||||
| -rw-r--r-- | weed/storage/volume_create_linux.go | 5 | ||||
| -rw-r--r-- | weed/storage/volume_create_windows.go | 11 |
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 } } |
