When the block buffer is being checked for saturation and pruning, we generally ignore incomplete blocks towards the measurements. A recent misconfiguration highlighted that this may be wrong. In this case, thousands of blocks were incomplete and since they were not counted towards the max allowed, the buffer effectively grew unbounded. We should therefore always consider these incomplete blocks in the final buffer saturation calculations, while avoiding pruning of these blocks. Only when back pressure is disabled and we've exhausted the buffer can we start to prune incomplete blocks.
When the block buffer is being checked for saturation and pruning, we generally ignore incomplete blocks towards the measurements. A recent misconfiguration highlighted that this may be wrong. In this case, thousands of blocks were incomplete and since they were not counted towards the max allowed, the buffer effectively grew unbounded. We should therefore always consider these incomplete blocks in the final buffer saturation calculations, while avoiding pruning of these blocks. Only when back pressure is disabled and we've exhausted the buffer can we start to prune incomplete blocks.