[svn-r11991] Purpose:

Porting.

Description:
Red Storm's lustre used srand and rand to initialize their user mode
of lustre.  HDF5 also uses srand and that messes up Lustre.

Solution:
Use -DRED_STORM to block out the HDF5 code that calls srand.
This is a temporary fix since Lustre has fixed its code from
calling srand and rand but the fix is not deployed at Red_storm
yet.

Platforms tested:
Tested at Red-Storm.
This commit is contained in:
Albert Cheng 2006-02-28 19:27:20 -05:00
parent 30952f892c
commit 0004361cc7
2 changed files with 7 additions and 15 deletions

View File

@ -76,21 +76,6 @@ H5_init_library(void)
herr_t ret_value=SUCCEED;
FUNC_ENTER_NOAPI(H5_init_library, FAIL)
#if defined(H5_HAVE_PARALLEL) && defined(RED_STORM)
/* A temporary patch for redstorm, must open a file in the same parallel
* data filesystem before H5_init_library. Otherwise, it hangs with error:
* (client.c:568:ptlrpc_check_status()) @@@ type == PTL_RPC_MSG_ERR, err == -114 req@0x57a9660 x1/t0 o38->mds_l2@MDS_PEER_UUID:12 lens 240/272 ref 1 fl Rpc:R/100000/0 rc 0/-114
*/
#define H5_redstorm_patch(scr_dir) \
{ \
char *fname=scr_dir "/hdf5/junk"; \
/* printf("redstorm parallel patch on %s\n", scr_dir); */ \
fclose(fopen(fname, "w+")); remove(fname); \
}
H5_redstorm_patch("/scratch1");
H5_redstorm_patch("/scratch2");
#endif
/*
* Make sure the package information is updated.
*/

View File

@ -210,9 +210,16 @@ H5SL_init_interface(void)
FUNC_ENTER_NOAPI_NOINIT_NOFUNC(H5SL_init_interface)
/* A temporary patch for redstorm because Lustre there also uses srand.
* This causes Lustre on Redstorm to hang with following errors. (Lustre
* has fix it, but not deployed at RedStorm yet.
* (client.c:568:ptlrpc_check_status()) @@@ type == PTL_RPC_MSG_ERR, err == -114 req@0x57a9660 x1/t0 o38->mds_l2@MDS_PEER_UUID:12 lens 240/272 ref 1 fl Rpc:R/100000/0 rc 0/-114
*/
#ifndef RED_STORM
/* Create randomized set of numbers */
curr_time=HDtime(NULL);
HDsrand((unsigned)curr_time);
#endif
FUNC_LEAVE_NOAPI(SUCCEED)
} /* end H5SL_init_interface() */