summaryrefslogtreecommitdiffstats
path: root/src/H5B.c
diff options
context:
space:
mode:
authorJames Laird <jlaird@hdfgroup.org>2004-07-14 19:34:24 (GMT)
committerJames Laird <jlaird@hdfgroup.org>2004-07-14 19:34:24 (GMT)
commita0c466cd99e6d62725ac1828755b042c2dcb6c85 (patch)
tree8ef8956600e8765fe9a0fc96dcb5faa0798032e8 /src/H5B.c
parent769ee96c1fd7cdcc4de2f2b1f36e943ebf9fff8b (diff)
downloadhdf5-a0c466cd99e6d62725ac1828755b042c2dcb6c85.zip
hdf5-a0c466cd99e6d62725ac1828755b042c2dcb6c85.tar.gz
hdf5-a0c466cd99e6d62725ac1828755b042c2dcb6c85.tar.bz2
[svn-r8877]
Purpose: Bug Fix Description: If an HDF5 file grows larger than its address space, it dies and is unable to write any data. This is more likely to happen since users are able to change the number of bytes used to store addresses in the file. Solution: HDF5 now throws an error instead of dying. In addition, it "reserves" address space for the local heap and for object headers (which do not allocate space immediately). This ensures that after the error occurs, there is enough address space left to flush the entire file to disk, so no data is lost. A more complete explanation is at /doc/html/TechNotes/ReservedFileSpace.html Platforms tested: sleipnir, copper (parallel), verbena, arabica, Windows (Visual Studio 7) Solution: Platforms tested: Misc. update:
Diffstat (limited to 'src/H5B.c')
-rw-r--r--src/H5B.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/H5B.c b/src/H5B.c
index bdcca7c..d17e5df 100644
--- a/src/H5B.c
+++ b/src/H5B.c
@@ -229,7 +229,7 @@ H5B_create(H5F_t *f, hid_t dxpl_id, const H5B_class_t *type, void *udata,
bt->right = HADDR_UNDEF;
bt->nchildren = 0;
if((bt->rc_shared=(type->get_shared)(f, udata))==NULL)
- HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, NULL, "can't retrieve B-tree node buffer")
+ HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, FAIL, "can't retrieve B-tree node buffer")
shared=H5RC_GET_OBJ(bt->rc_shared);
HDassert(shared);
if (NULL==(bt->native=H5FL_BLK_MALLOC(native_block,shared->sizeof_keys)) ||
@@ -536,9 +536,6 @@ H5B_dest(H5F_t UNUSED *f, H5B_t *bt)
*/
assert(bt);
- /* Verify that node is clean */
- assert(bt->cache_info.is_dirty==0);
-
H5FL_SEQ_FREE(haddr_t,bt->child);
H5FL_BLK_FREE(native_block,bt->native);
H5RC_DEC(bt->rc_shared);