[mpich-discuss] ad_pvfs2_read bug in ADIOI_PVFS2_ReadStrided()

Rob Latham robl at mcs.anl.gov
Mon Jun 1 17:16:31 CDT 2009


On Fri, May 29, 2009 at 07:01:31PM -0500, Wei-keng Liao wrote:
> I don't know the if condition at line 480 is correct.
>     if(i || k) {
>
> I think when i and k are both zero, the statements inside the if
> condition are still needed. There are other places having the same
> if condition.

PVFS listio will
describe the data in offset-length pairs, but limits these arrays to
64 pairs per call. 

"i==0" means there were no complete write lists, either because the
entire request could be described in less than 64 pairs, or because we
are on the first iteration

"k==0" means the code is operating on the first node in the
offset-length list

If I and K are both zero, and we execute the code inside that if
condition, the code would set up the 0th node of the offset-length
list, but the 0th node of the offset-length list was set up just a few
lines earlier, in the "if !i" section.

I've been wrong about this code before.  Maybe we can come up with a
test case to confirm?

==rob

-- 
Rob Latham
Mathematics and Computer Science Division
Argonne National Lab, IL USA


More information about the mpich-discuss mailing list