Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
FSDataset.getNextVolume() uses FSVolume.getAvailable() to determine whether to allocate a block on a volume. This doesn't factor in other in-flight blocks that have been "promised" space on the volume. The resulting issue is that, if a volume is nearly full but not full, multiple blocks will be allocated on that volume, and then they will all hit "Out of space" errors during the write.