summaryrefslogtreecommitdiffstats
path: root/src/H5MFsection.c
diff options
context:
space:
mode:
authormainzer <mainzer#hdfgroup.org>2018-11-04 23:54:01 (GMT)
committermainzer <mainzer#hdfgroup.org>2018-11-04 23:54:01 (GMT)
commite62f4bd4fab00b0cd03e269a858c21558a9321fa (patch)
tree49506dd4873e1413b6c960ebcaf22c269933411c /src/H5MFsection.c
parentd4d7687ad1df35101ed72567c99f1c57536b5ccd (diff)
downloadhdf5-e62f4bd4fab00b0cd03e269a858c21558a9321fa.zip
hdf5-e62f4bd4fab00b0cd03e269a858c21558a9321fa.tar.gz
hdf5-e62f4bd4fab00b0cd03e269a858c21558a9321fa.tar.bz2
Initial checkin of page buffer re-implementation to support VFD SWMR.
Tested serial / debug on Charis and Jelly. Two known issues: 1) New page buffer seems to expose issues in the accumulator code. For whatever reason, fheap with the new page buffer exposes corruption issues if the page buffer uses H5F__accum_read/write(), but the problems go away if the page buffers uses H5FD_read/write() instead. Need to either chase this or dis-able page bufffer in combination with the accumulator. 2) Encountered a number of assertion failures that are explainable by the free space manager code not telling the page buffer to discard pages when they are freed. Wrote code to handle this -- once the free space manager is modified, this code should be removed and the original assertions restored.
Diffstat (limited to 'src/H5MFsection.c')
-rw-r--r--src/H5MFsection.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/H5MFsection.c b/src/H5MFsection.c
index 3ebc5c8..1d217a1 100644
--- a/src/H5MFsection.c
+++ b/src/H5MFsection.c
@@ -775,7 +775,7 @@ H5MF__sect_small_merge(H5FS_section_info_t **_sect1, H5FS_section_info_t *_sect2
/* This is in response to the data corruption bug from fheap.c with page buffering + page strategy */
/* Note: Large metadata page bypasses the PB cache */
/* Note: Update of raw data page (large or small sized) is handled by the PB cache */
- if(udata->f->shared->page_buf != NULL && udata->alloc_type != H5FD_MEM_DRAW)
+ if(udata->f->shared->pb_ptr != NULL && udata->alloc_type != H5FD_MEM_DRAW)
if(H5PB_remove_entry(udata->f, (*sect1)->sect_info.addr) < 0)
HGOTO_ERROR(H5E_RESOURCE, H5E_CANTFREE, FAIL, "can't free merged section")