[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.1rc2-53-gb250d33
mysql vizuser
noreply at mpich.org
Fri Dec 13 12:25:35 CST 2013
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via b250d338e66667a8a1071a5f73a4151fd59f83b2 (commit)
from 6395fbaea13f9c1e92be521d15857562f5c84466 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/b250d338e66667a8a1071a5f73a4151fd59f83b2
commit b250d338e66667a8a1071a5f73a4151fd59f83b2
Author: Rob Latham <robl at mcs.anl.gov>
Date: Fri Dec 13 12:08:09 2013 -0600
deal with "infinitely stale" case
Dave Goodell reported a situation where ROMIO would retry "forever" and
suggested we give up after a large number of retries.
Signed-off-by: "Dave Goodell (dgoodell)" <dgoodell at cisco.com>
diff --git a/src/mpi/romio/adio/common/ad_fstype.c b/src/mpi/romio/adio/common/ad_fstype.c
index 4bd1a11..145bda2 100644
--- a/src/mpi/romio/adio/common/ad_fstype.c
+++ b/src/mpi/romio/adio/common/ad_fstype.c
@@ -262,12 +262,17 @@ static void ADIO_FileSysType_fncall(const char *filename, int *fstype, int *erro
#endif
static char myname[] = "ADIO_RESOLVEFILETYPE_FNCALL";
+/* NFS can get stuck and end up returing ESTALE "forever" */
+#define MAX_ESTALE_RETRY 10000
+ int retry_cnt;
+
*error_code = MPI_SUCCESS;
#ifdef ROMIO_HAVE_STRUCT_STATVFS_WITH_F_BASETYPE
+ retry_cnt=0;
do {
err = statvfs(filename, &vfsbuf);
- } while (err && (errno == ESTALE));
+ } while (err && (errno == ESTALE) && retry_cnt++ < MAX_ESTALE_RETRY);
if (err) {
/* ENOENT may be returned in two cases:
@@ -322,9 +327,10 @@ static void ADIO_FileSysType_fncall(const char *filename, int *fstype, int *erro
#endif /* STATVFS APPROACH */
#ifdef HAVE_STRUCT_STATFS
+ retry_cnt = 0;
do {
err = statfs(filename, &fsbuf);
- } while (err && (errno == ESTALE));
+ } while (err && (errno == ESTALE) && retry_cnt++ < MAX_ESTALE_RETRY);
if (err) {
if(errno == ENOENT) {
@@ -451,9 +457,10 @@ static void ADIO_FileSysType_fncall(const char *filename, int *fstype, int *erro
#endif /* STATFS APPROACH */
#ifdef ROMIO_HAVE_STRUCT_STAT_WITH_ST_FSTYPE
+ retry_cnt = 0;
do {
err = stat(filename, &sbuf);
- } while (err && (errno == ESTALE));
+ } while (err && (errno == ESTALE) && retry_cnt++ < MAX_ESTALE_RETRY);
if (err) {
if(errno == ENOENT) {
-----------------------------------------------------------------------
Summary of changes:
src/mpi/romio/adio/common/ad_fstype.c | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
hooks/post-receive
--
MPICH primary repository
More information about the commits
mailing list