summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2003-06-10 18:47:26 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2003-06-10 18:47:26 (GMT)
commit6ea525228102ecc40e9c5a0fa16c9427366d8b75 (patch)
tree1e980da5c12e8cc855b2baa6e1edc336029ca789 /src
parent81813064815e64f0df54c5beda1bed83b3296ba0 (diff)
downloadhdf5-6ea525228102ecc40e9c5a0fa16c9427366d8b75.zip
hdf5-6ea525228102ecc40e9c5a0fa16c9427366d8b75.tar.gz
hdf5-6ea525228102ecc40e9c5a0fa16c9427366d8b75.tar.bz2
[svn-r7018] Purpose:
Bug fix Description: The dataset's modification time was getting set whenever raw data was written with H5Dwrite. Unfortunately, this is a metadata change (which are required to be performed collectively) and H5Dwrite may be called independently from a parallel program, resulting in metadata cache corruption and/or program hangs. Solution: Don't update the modification time when raw data it written. :-( Platforms tested: FreeBSD 4.8 (sleipnir) w/parallel h5committest Misc. update: Noted in release notes and also sent to Frank for updating the docs.
Diffstat (limited to 'src')
-rw-r--r--src/H5Dio.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/H5Dio.c b/src/H5Dio.c
index 853af23..fd4cef6 100644
--- a/src/H5Dio.c
+++ b/src/H5Dio.c
@@ -911,12 +911,20 @@ H5D_write(H5D_t *dataset, const H5T_t *mem_type, const H5S_t *mem_space,
HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "can't write data");
} /* end else */
+#ifdef OLD_WAY
+/*
+ * This was taken out because it can be called in a parallel program with
+ * independent access, causing the metadata cache to get corrupted. Its been
+ * disabled for all types of access (serial as well as parallel) to make the
+ * modification time consistent for all programs. -QAK
+ */
/*
* Update modification time. We have to do this explicitly because
* writing to a dataset doesn't necessarily change the object header.
*/
if (H5O_touch(&(dataset->ent), FALSE, dxpl_id)<0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTINIT, FAIL, "unable to update modification time");
+#endif /* OLD_WAY */
done:
if (src_id >= 0)