The download verb will fail if the target snapshot has a block whose index is greater than 4096.
It seems because this line tries to calculate the offset in i32.
let offset = context.block_index * block_size;
The type of context.block_index and block_size; changed was changed to i32 at https://github.com/awslabs/coldsnap/commit/118e58613b59960ce20aa86c997b951954dbba3d when the AWS SDK coldsnap uses was replaced with AWS's one, and now offset can be up to 2**31-1. The block size is always 512 KiB so far, and block indices of 4096 or larger would cause bigger offsets than 2**31-1.
For example, I have a snapshot that consists of one block whose BlockIndex is 4096.
The download verb will fail if the target snapshot has a block whose index is greater than 4096. It seems because this line tries to calculate the offset in
i32
.The type of
context.block_index
andblock_size; changed
was changed toi32
at https://github.com/awslabs/coldsnap/commit/118e58613b59960ce20aa86c997b951954dbba3d when the AWS SDK coldsnap uses was replaced with AWS's one, and nowoffset
can be up to2**31-1
. The block size is always 512 KiB so far, and block indices of 4096 or larger would cause bigger offsets than2**31-1
.For example, I have a snapshot that consists of one block whose
BlockIndex
is4096
.If I try to download the snapshot, it will fail.