@@ -171,11 +171,11 @@ func NewWithDiskSpace(name string, dataPath string,
171
171
172
172
// Get the last known state of DiskQueue from metadata and start ioLoop
173
173
func (d * diskQueue ) start () error {
174
- // ensure that DiskQueue has enough space to write the metadata file
175
- if d .enableDiskLimitation && d .maxBytesDiskSpace <= maxMetaDataFileSize {
174
+ // ensure that DiskQueue has enough space to write the metadata file + at least one data file with max size + message size
175
+ if d .enableDiskLimitation && ( d .maxBytesDiskSpace <= maxMetaDataFileSize + d . maxBytesPerFile ) {
176
176
errorMsg := fmt .Sprintf (
177
- "disk size limit too small(%d): not enough space for MetaData file size( %d)" ,
178
- d .maxBytesDiskSpace , maxMetaDataFileSize )
177
+ "disk size limit too small(%d): not enough space for MetaData file ( size=%d) and at least one data file with max size (maxBytesPerFile= %d). " ,
178
+ d .maxBytesDiskSpace , maxMetaDataFileSize , d . maxBytesPerFile )
179
179
d .logf (ERROR , "DISKQUEUE(%s) - %s" , errorMsg )
180
180
return errors .New (errorMsg )
181
181
}
@@ -463,8 +463,6 @@ func (d *diskQueue) readNumOfMessages(fileName string) (int64, error) {
463
463
if err != nil {
464
464
return 0 , err
465
465
}
466
-
467
- d .reader = bufio .NewReader (d .readFile )
468
466
}
469
467
470
468
closeReadFile := func () {
@@ -480,7 +478,7 @@ func (d *diskQueue) readNumOfMessages(fileName string) (int64, error) {
480
478
}
481
479
482
480
var totalMessages int64
483
- err = binary .Read (d .reader , binary .BigEndian , & totalMessages )
481
+ err = binary .Read (d .readFile , binary .BigEndian , & totalMessages )
484
482
if err != nil {
485
483
return 0 , err
486
484
}
@@ -580,10 +578,6 @@ func (d *diskQueue) freeDiskSpace(expectedBytesIncrease int64) error {
580
578
d .logf (ERROR , "DISKQUEUE(%s) failed to retrieve all .bad file info - %s" , d .name , err )
581
579
}
582
580
583
- if expectedBytesIncrease > d .maxBytesDiskSpace {
584
- return fmt .Errorf ("could not make space for expectedBytesIncrease = %d, with maxBytesDiskSpace = %d " , expectedBytesIncrease , d .maxBytesDiskSpace )
585
- }
586
-
587
581
// keep freeing up disk space until we have enough space to write this message
588
582
for _ , badFileInfo := range badFileInfos {
589
583
if d .totalDiskSpaceUsed + expectedBytesIncrease <= d .maxBytesDiskSpace {
0 commit comments