aboutsummaryrefslogtreecommitdiff
path: root/weed/storage/erasure_coding/ec_encoder.go
diff options
context:
space:
mode:
authorNikita Mochalov <Zamony@users.noreply.github.com>2023-08-10 01:30:36 +0300
committerGitHub <noreply@github.com>2023-08-09 15:30:36 -0700
commite6a49dc5337bb73a6334647bb34a44570b3ef6d7 (patch)
tree238a2b7e5ba2c80427cf7898e521e62b8bd8977e /weed/storage/erasure_coding/ec_encoder.go
parent3365468d0d683f61a915eebce06cc8c54ecd1dd6 (diff)
downloadseaweedfs-e6a49dc5337bb73a6334647bb34a44570b3ef6d7.tar.xz
seaweedfs-e6a49dc5337bb73a6334647bb34a44570b3ef6d7.zip
Fix resource leaks (#4737)
* Fix division by zero * Fix file handle leak * Fix file handle leak * Fix file handle leak * Fix goroutine leak
Diffstat (limited to 'weed/storage/erasure_coding/ec_encoder.go')
-rw-r--r--weed/storage/erasure_coding/ec_encoder.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/weed/storage/erasure_coding/ec_encoder.go b/weed/storage/erasure_coding/ec_encoder.go
index a60f76bc0..7d68de2e6 100644
--- a/weed/storage/erasure_coding/ec_encoder.go
+++ b/weed/storage/erasure_coding/ec_encoder.go
@@ -120,6 +120,10 @@ func generateMissingEcFiles(baseFileName string, bufferSize int, largeBlockSize
func encodeData(file *os.File, enc reedsolomon.Encoder, startOffset, blockSize int64, buffers [][]byte, outputs []*os.File) error {
bufferSize := int64(len(buffers[0]))
+ if bufferSize == 0 {
+ glog.Fatal("unexpected zero buffer size")
+ }
+
batchCount := blockSize / bufferSize
if blockSize%bufferSize != 0 {
glog.Fatalf("unexpected block size %d buffer size %d", blockSize, bufferSize)