summaryrefslogtreecommitdiffstats
path: root/src/H5Fsuper_cache.c
diff options
context:
space:
mode:
authorVailin Choi <vchoi@jam.ad.hdfgroup.org>2019-11-14 21:15:37 (GMT)
committerVailin Choi <vchoi@jam.ad.hdfgroup.org>2019-11-14 21:15:37 (GMT)
commit350a786486376c73af70044f9662d5790735a8a0 (patch)
tree2e09d24ee72ab7eea81777ebd8d50ffa92a1946c /src/H5Fsuper_cache.c
parent227688c9cd99577df8dcba63875dca513593c739 (diff)
downloadhdf5-350a786486376c73af70044f9662d5790735a8a0.zip
hdf5-350a786486376c73af70044f9662d5790735a8a0.tar.gz
hdf5-350a786486376c73af70044f9662d5790735a8a0.tar.bz2
Fix for punch list #13 item #1: Odd behavior in the superblock refresh routine.
The test "driver_addr != sblock->driver_addr" is failing for superblock version 2 & 3. Fix: there is no driver_addr in superblock version 2 & 3. It should decode the root group object header address (root_addr) and verify accordingly.
Diffstat (limited to 'src/H5Fsuper_cache.c')
-rw-r--r--src/H5Fsuper_cache.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/H5Fsuper_cache.c b/src/H5Fsuper_cache.c
index 4132f3b..a17fcc0 100644
--- a/src/H5Fsuper_cache.c
+++ b/src/H5Fsuper_cache.c
@@ -1309,7 +1309,7 @@ H5F__cache_superblock_refresh(H5F_t *f, void * _thing, const void * _image,
H5F_addr_decode(f, (const uint8_t **)&image, &base_addr/*out*/);
H5F_addr_decode(f, (const uint8_t **)&image, &ext_addr/*out*/);
H5F_addr_decode(f, (const uint8_t **)&image, &stored_eof/*out*/);
- H5F_addr_decode(f, (const uint8_t **)&image, &driver_addr/*out*/);
+ H5F_addr_decode(f, (const uint8_t **)&image, &root_addr/*out*/);
if ( base_addr != sblock->base_addr )
HGOTO_ERROR(H5E_FILE, H5E_BADVALUE, FAIL, "unexpected base_addr")
@@ -1317,17 +1317,10 @@ H5F__cache_superblock_refresh(H5F_t *f, void * _thing, const void * _image,
if ( ext_addr != sblock->ext_addr )
HGOTO_ERROR(H5E_FILE, H5E_BADVALUE, FAIL, "unexpected ext_addr")
+ if ( root_addr != sblock->root_addr )
+ HGOTO_ERROR(H5E_FILE, H5E_BADVALUE, FAIL, "unexpected root_addr")
+
/* use stored_eof to update EOA below */
-#if 0 /* JRM */
- /* VFD SWMR TODO: This test is failing for some reason. As it is
- * not an issue in phase 1 where we are only using sec2 for the
- * writer, we can bypass it for now.
- *
- * JRM -- 1/16/19
- */
- if ( driver_addr != sblock->driver_addr )
- HGOTO_ERROR(H5E_FILE, H5E_BADVALUE, FAIL, "unexpected driver_addr")
-#endif /* JRM */
/* Decode checksum */
UINT32DECODE(image, read_chksum);