mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-24 15:25:00 +08:00
[svn-r11964] Purpose:
bug fix Description: ret_value is not set to SUCCEED in H5D_mpio_select_write That causes the 64-bit intel compiler unhappy. It will give a non-zero number and cause the testing fake failure. Another one is picked up by cmpi again. For one optimization case, another variable is not initialized properly and compiler set an unhappy number, cause the test failed. Solution: Properly initialize those variables. Platforms tested: teragrid:parallel mir:parallel heping: parallel and sequential tungsten:parallel Misc. update: h5committest doesn't finish due to no space left on device. parallel tests still failed at tungsten with cmpi. It looks like it was a bug from cmpi.
This commit is contained in:
parent
19476ba364
commit
8962992298
@ -377,13 +377,17 @@ H5D_mpio_select_write(H5D_io_info_t *io_info,
|
||||
haddr_t addr,
|
||||
const void *buf)
|
||||
{
|
||||
herr_t ret_value;
|
||||
herr_t ret_value = SUCCEED;
|
||||
|
||||
FUNC_ENTER_NOAPI(H5D_mpio_select_write,FAIL);
|
||||
|
||||
#ifdef KENT
|
||||
printf("coming into mpio_select_write\n");
|
||||
#endif
|
||||
/*OKAY: CAST DISCARDS CONST QUALIFIER*/
|
||||
if(H5F_block_write (io_info->dset->oloc.file, H5FD_MEM_DRAW, addr, mpi_buf_count, io_info->dxpl_id, buf)<0)
|
||||
HGOTO_ERROR(H5E_IO,H5E_WRITEERROR,FAIL,"can't finish collective parallel write");
|
||||
|
||||
done:
|
||||
FUNC_LEAVE_NOAPI(ret_value);
|
||||
} /* end H5D_mpio_select_write() */
|
||||
@ -589,6 +593,9 @@ H5D_contig_collective_io(H5D_io_info_t *io_info,
|
||||
if(io_info->dset->shared->layout.type == H5D_CONTIGUOUS)
|
||||
addr = H5D_contig_get_addr(io_info->dset);
|
||||
|
||||
#ifdef KENT
|
||||
printf("before inter_collective_io\n");
|
||||
#endif
|
||||
if(H5D_inter_collective_io(io_info,file_space,mem_space,addr,buf,do_write)<0)
|
||||
HGOTO_ERROR(H5E_IO, H5E_CANTGET, FAIL,"couldn't finish shared collective MPI-IO");
|
||||
|
||||
@ -943,9 +950,15 @@ printf("before inter_collective_io for total chunk = 1 \n");
|
||||
HGOTO_ERROR(H5E_IO, H5E_CANTGET, FAIL,"couldn't finish MPI-IO");
|
||||
|
||||
done:
|
||||
if(num_chunk == 0) HDfree(total_chunk_addr_array);
|
||||
else {
|
||||
if (fm->total_chunks != 1) {
|
||||
#ifdef KENT
|
||||
printf("before freeing memory inside H5D_link_collective_io ret_value = %d\n",ret_value);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
if (fm->total_chunks != 1) {
|
||||
if(num_chunk == 0) HDfree(total_chunk_addr_array);
|
||||
else {
|
||||
HDfree(chunk_addr_info_array);
|
||||
HDfree(chunk_mtype);
|
||||
HDfree(chunk_ftype);
|
||||
@ -955,6 +968,10 @@ printf("before inter_collective_io for total chunk = 1 \n");
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef KENT
|
||||
printf("before leaving H5D_link_collective_io ret_value = %d\n",ret_value);
|
||||
#endif
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
}
|
||||
/* end H5D_link_chunk_collective_io */
|
||||
@ -993,6 +1010,9 @@ H5D_multi_chunk_collective_io(H5D_io_info_t *io_info,fm_map *fm,const void *buf,
|
||||
hbool_t select_chunk;
|
||||
hbool_t last_io_mode_coll = TRUE;
|
||||
herr_t ret_value = SUCCEED;
|
||||
#ifdef KENT
|
||||
int mpi_rank;
|
||||
#endif
|
||||
|
||||
|
||||
FUNC_ENTER_NOAPI_NOINIT(H5D_multi_chunk_collective_io)
|
||||
@ -1189,6 +1209,9 @@ printf("before final collective IO\n");
|
||||
if(H5D_final_collective_io(io_info,&mpi_file_type,&mpi_buf_type,&coll_info,buf,do_write)<0)
|
||||
HGOTO_ERROR(H5E_IO, H5E_CANTGET, FAIL,"couldn't finish collective MPI-IO");
|
||||
done:
|
||||
#ifdef KENT
|
||||
printf("before leaving inter_collective_io ret_value = %d\n",ret_value);
|
||||
#endif
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
} /* end H5D_inter_collective_io */
|
||||
@ -1227,13 +1250,18 @@ H5D_final_collective_io(H5D_io_info_t *io_info,MPI_Datatype*mpi_file_type,MPI_Da
|
||||
HGOTO_ERROR(H5E_PLIST, H5E_CANTSET, FAIL, "can't set MPI-I/O properties");
|
||||
|
||||
plist_is_setup=1;
|
||||
/*HDfprintf(stdout,"chunk addr %Hu\n",coll_info->chunk_addr);
|
||||
printf("mpi_buf_count %d\n",coll_info->mpi_buf_count); */
|
||||
#ifdef KENT
|
||||
HDfprintf(stdout,"chunk addr %Hu\n",coll_info->chunk_addr);
|
||||
printf("mpi_buf_count %d\n",coll_info->mpi_buf_count);
|
||||
#endif
|
||||
if(do_write) {
|
||||
ret_value = (io_info->ops.write)(io_info,
|
||||
coll_info->mpi_buf_count,0,NULL,NULL,coll_info->chunk_addr,
|
||||
buf);
|
||||
/* Check return value from optimized write */
|
||||
#ifdef KENT
|
||||
printf("ret_value after final collective IO= %d\n",ret_value);
|
||||
#endif
|
||||
if (ret_value<0)
|
||||
HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "optimized write failed")
|
||||
}
|
||||
@ -1263,6 +1291,9 @@ H5D_final_collective_io(H5D_io_info_t *io_info,MPI_Datatype*mpi_file_type,MPI_Da
|
||||
if (MPI_SUCCESS != (mpi_code= MPI_Type_free( mpi_file_type )))
|
||||
HMPI_DONE_ERROR(FAIL, "MPI_Type_free failed", mpi_code);
|
||||
}
|
||||
#ifdef KENT
|
||||
printf("ret_value before leaving final_collective_io=%d\n",ret_value);
|
||||
#endif
|
||||
|
||||
FUNC_LEAVE_NOAPI(ret_value)
|
||||
}/* end H5D_final_collective_io */
|
||||
|
Loading…
Reference in New Issue
Block a user