created a file with layout with "lfs setstripe -E 4m -E 1g -c 4 -E -1 /mnt/lustre/test"
and truncate then seek and read of it
while the same operations upon a plain file is like follows
The location 1070596096 (1021M) is exactly at the end of the 1st stripe of the 2nd component, and truncate will not set the OST object size of the 1st stripe (because it's not intersected with [1070596096, EOF)) and set the 2nd, 3rd and 4th stripe object size, from the 4th stripe object we can get file size of 1069547520 (1020M). This is incorrect, so the seek and read think we are reading after the EOF of the file, so return 0 instead of 4 bytes.