summaryrefslogtreecommitdiffstats
path: root/src/H5Ftest.c
Commit message (Collapse)AuthorAgeFilesLines
* Committing clang-format changesgithub-actions2021-11-171-1/+1
|
* 1) Core changes for adding NFS/updater support as described in the RFC.vchoi2021-11-171-20/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | src/H5Pfapl.c src/H5Fvfd_swmr.c src/H5Fpublic.h src/H5Fpkg.h src/H5Fprivate.h 2) For VFD SWMR testing, add private property for checksum generation of metadata files: src/H5Fint.c src/H5Fvfd_swmr.c src/H5Pfapl.c src/H5Fpkg.h src/H5Fprivate.h 3) Fix the following in H5F_vfd_swmr_init() and H5F_vfd_swmr_close_or_flush(): (a) Allocate metadata file index right after metadata file header. (b) Set tick number to 0 when creating header and index for file open case. (c) Remove tick number increment at file close. src/H5Fvfd_swmr.c src/H5Ftest.c 4) To be consistent with the RFC, change the name for field "chksum" to "checksum" in struct H5FD_vfd_swmr_idx_entry_t: src/H5FDprivate.h src/H5FDtest.c src/H5FDvfd_swmr.c src/H5Ftest.c src/H5PB.c 4) Add tests for NFS/updater test/vfd_swmr.c 5) Modify common routine init_vfd_swmr_config() to accept updater_file_path test/vfd_swmr_common.c test/vfd_swmr_common.h 6) Changes to the tests due to the common routine init_vfd_swmr_config(): test/vfd_swmr_addrem_writer.c test/vfd_swmr_attrdset_writer.c test/vfd_swmr_bigset_writer.c test/vfd_swmr_dsetchks_writer.c test/vfd_swmr_dsetops_writer.c test/vfd_swmr_generator.c test/vfd_swmr_gfail_writer.c test/vfd_swmr_gperf_writer.c test/vfd_swmr_group_writer.c test/vfd_swmr_reader.c test/vfd_swmr_remove_reader.c test/vfd_swmr_remove_writer.c test/vfd_swmr_sparse_reader.c test/vfd_swmr_sparse_writer.c test/vfd_swmr_vlstr_reader.c test/vfd_swmr_vlstr_writer.c test/vfd_swmr_writer.c test/page_buffer.c
* Brings H5CX_pop() changes from developDana Robinson2021-04-081-2/+2
|
* Brings file locking changes from developDana Robinson2021-03-251-34/+66
|
* Updates license url and history docsDana Robinson2021-03-251-1/+1
|
* Formats the source and updates the gcc warning pragmasDana Robinson2021-03-251-152/+137
|
* Make tests pass on both of my branches, like they ought to: in the tests thatDavid Young2020-08-031-1/+1
| | | | | | | | | | call H5F__vfd_swmr_writer_md_test(), actually sleep for more than `max_lag` ticks so that the deferred-frees queue is actually flushed before we force new items onto the queue and count them. In H5F__vfd_swmr_writer_md_test(), check that the number of deferred shadow-space frees is *precisely* the number `nshadow_defrees`, since that seems to be what the tests that call this routine intend.
* Rename the deferred-free queues. There are two of them, and the names I usedDavid Young2020-02-061-6/+6
| | | | | | | | | | | | | | for them did not help me keep track of what they were for. For brevity, I will call a deferred free record a "defree" in the code. The deferred_free_queue_t becomes a lower_defree_queue_t, and each record on the queue becomes a lower_defree_t. A lower_defree_t tracks one deferred free on the lower VFD---that is, the one under the SWMR VFD. The old_image_queue_t becomes a shadow_defree_queue_t, and a record therein is a shadow_defree_t. A shadow_defree_t tracks one deferred free on the shadow file.
* Numerous changes supporting a floating shadow index:David Young2020-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Add to the H5F_shared_t (!) a new member that tells the index in the shadow file where the index should be written. Allocate shadow filespace for the header and the index separately so that the index can float. Update tests to match the expected original location of the index. Introduce vfd_swmr_enlarge_shadow_index(), a routine that allocates space in the shadow file for a new index that has (up to) twice as many entries as the old index, allocates a new in-core index of the same size, and copies the old in-core index to the new. Call vfd_swmr_enlarge_shadow_index() in H5PB_vfd_swmr__update_index() when the in-core index has too few slots. In the comment at the top of H5FD__vfd_swmr_load_hdr_and_idx(), describe the protocol that it follows, now, when it reads the shadow header and index. Delete some dead code in the function and add a bit of diagnostic code. TBD quiet the diagnostic code. In H5F_vfd_swmr_init(), follow the protocol: write the index, first, then the header. Modify property-list checks and tests to reserve no fewer than two pages at the front of the shadow file for the header and index.
* Change the blah_blah_blah_md_header `index_length` member fromDavid Young2020-01-101-1/+5
| | | | | | | | `uint64_t` to `size_t` because it describes the size of an in-core structure as well as an on-disk one, and `size_t` is wide enough to store the size of any in-core structure, while `uint64_t` may be much too wide. Check that `index_length` is no more than SIZE_MAX after we read it.
* Use the "tail queue" from queue(3) for the delayed free list of shadow images.David Young2019-12-191-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delete the little-used free-list length, dl_len, and just count up the list entries when diagnostic code needs the length. Extract the code for deferring shadow-image free into a new subroutine, `vfd_swmr_idx_entry_defer_free()`. Rename type `deferred_free_head_t` as `deferred_free_queue_t`. Remove the disused H5F__LL_{REMOVE,PREPEND} macros. Add some diagnostic code and #if 0'd assertions. Change `qsort(ptr, n, sizeof(type), cmp)` to `qsort(ptr, n, sizeof(*ptr), cmp)`. Use a `continue` statement to lower a staircase in H5F_update_vfd_swmr_metadata_file(). Add vfd_swmr_mdf_idx_entry_remove() to delete a shadow index entry and add the image at that entry to a deferred-free list. Call it whenever a page is evicted. Update the comment in H5PB_remove_entry() that asks if we need to remove shadow index entries: now we *do* remove them. Remove shadow index entries in H5PB__evict_entry(). Also mention in the comment that the index-entry removal performed by H5PB__evict_entry() ought to be sufficient.
* Remove unnecessary casts. Use the `ptr = calloc(n, sizeof(*ptr))` idiom forDavid Young2019-12-191-4/+5
| | | | specifying the item size to be allocated. NFCI.
* Merge all of my changes from merge-back-to-feature-vfd_swmr-attempt-1,David Young2019-12-091-7/+42
| | | | | | | | including the merge of `hdffv/hdf5/develop`, back to the branch that Vailin and I share. Now I need to put this branch on a fork with a less confusing name than vchoi_fork!
* Changes for punch list #4: Add support for opening mulitple files in either ↵Vailin Choi2019-11-201-2/+0
| | | | | | VFD SWMR writer or reader mode. See EOT queue in section 3.2.2 and 3.3 and 3.3.2 in the RFC. Update punch list with items completed and in progress.
* Modifications to the vfd swmr concurrent tests:Vailin Choi2019-01-311-7/+3
| | | | | | | | (1) Increase the # of records to write (Nrecords) in testvfdswmr.sh.in so as to ensure the writer will not exit before the reader (2) Use H5E_BEGIN_TRY/END_TRY when H5Fopen() the test file in reader tests (3) Add "READER" or "WRITER" to debugging messages (4) Misc cleanup
* Intermin commit to allow update from Vailin's recent changesmainzer2019-01-151-0/+6
|
* Fixes for issues #1 and #2 listed in John's email dated Dec 7 2018:Vailin Choi2018-12-191-2/+2
| | | | | | | | (1) Assertion failure in the vfd_swmr test (2) Reader error in the vfd swmr concurrent tests Also fixes for: (a) Use H5MV_alloc() to allocate space for md_pages_reserved when creating the metadata file in H5F__vfd_swmr_init() (b) Remove a multi-page (when vfd_swmr_writer is true) from the page buffer in H5MF_xfree()
* 1) Add concurrent test for VFD SWMR readerVailin Choi2018-10-291-18/+17
| | | | 2) Bug fixes in H5FDvfd_swmr.c
* (1) Add tests for VFD SWMR writerVailin Choi2018-10-221-0/+361
| | | | (2) Bug fixes
* Normalization with vol_integration (test code and H5Xtest.c)Dana Robinson2018-09-201-55/+50
|
* Cleanup API context function usage.Quincey Koziol2018-03-191-12/+18
|
* Add API context interface and use it throughout the library.Quincey Koziol2018-03-151-1/+14
|
* Merge pull request #426 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10 to ↵Larry Knox2017-04-251-6/+4
| | | | | | | | | | hdf5_1_10 * commit '54957d37f5aa73912763dbb6e308555e863c43f4': Commit copyright header change for src/H5PLpkg.c which was added after running script to make changes. Add new files in release_docs to MANIFEST. Cimmit changes to Makefile.in(s) and H5PL.c that resulted from running autogen.sh. Merge pull request #407 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10_1 to hdf5_1_10_1 Change copyright headers to replace url referring to file to be removed and replace it with new url for COPYING file.
* Switch to new, more scalable, metadata cache entry tagging.Quincey Koziol2016-11-071-0/+34
|
* [svn-r29081] - merge in the phdf5_metadata_opt/ branch with the collective ↵Mohamad Chaarawi2016-02-101-1/+1
| | | | | | | | metadata optimizations. - rename H5AC_dxpl_id to H5AC_ind_read_dxpl_id and update all usage in the library tested on bb-8 with parallel and serial.
* [svn-r28950] - remove META_FLUSH_COLLECTIVELY property for delayed sanity ↵Mohamad Chaarawi2016-01-211-1/+1
| | | | | | | | | | checks from metadata dxpls - remove H5AC_ind_dxpl_id and use only H5AC_dxpl_id everywhere instead. - remove flush_me_collectively flag from cache entries - add a collective sanity check (MPI_Barrier) for every HDF5 API routine that could possibly touch the file. This is trigerred when the environment variable H5_COLL_API_SANITY_CHECK is set to a non 0 digit. tested on BB-8 with serial and parallel.
* [svn-r27768] Description:Quincey Koziol2015-09-141-4/+4
| | | | | | | | | | | | | | | | | | | | | | Complete revamp of package initialization/shutdown mechanism in the library. Each package now has a single init/term routine. This new way should avoid packages being re-initialized during library shutdown and is also be _much_ more proactive about giving feedback for resource leaks internal to the library. Introduces a new "module" header file for packages in the library (e.g src/H5Fmodule.h) which sets up some necessary package configuration macros for the FUNC_ENTER/LEAVE macros. (The VFL drivers have their own slightly modified version of this header, src/H5FDdrvr_module.h) Also cleaned up a bunch of resources leaks all across the library and tests, along with addressing many warnings, as I encountered them. Tested on: MacOSX/64 10.10.5 (amazon) w/serial & parallel Linux/64 3.10.x (kituo) w/serial & parallel Linux/64 2.6.x (ostrich) w/serial
* [svn-r21923] Description:Quincey Koziol2012-02-101-1/+1
| | | | | | | | | Add FUNC_ENTER macros for package-private routines and begin process of switching package routines to use them. All H5G routines are currently finished. Tested on: Mac OSX/64 10.7.3 (amazon) w/debug, production & parallel
* [svn-r21919] Description:Quincey Koziol2012-02-091-3/+3
| | | | | | | | Refactor function name macros and simplify the FUNC_ENTER macros, to clear away the cruft and prepare for further cleanups. Tested on: Mac OSX/64 10.7.3 (amazon) w/debug, production & parallel
* [svn-r17365] Description:Quincey Koziol2009-08-151-1/+1
| | | | | | | | | | | | | | | | | | | | Final merge of changes from sblock_mdc branch back to trunk. The superblock is now managed by the metadata cache. Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode Mac OS X/32 10.5.8 (amazon) in debug mode Mac OS X/32 10.5.8 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode
* [svn-r17029] Description:Quincey Koziol2009-06-111-0/+33
| | | | | | | | | | | | Adjust 'temporary' file space code to always be within the file's address space, even when the file uses 32-bit addresses. (It's not really necessary to be within the file's address space, since objects with temporary addresses can't be written to the file, but it can't really hurt and it makes the testing easier) Tested on: Linux/32 2.6 (jam) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe, in debug mode and with 'make check-vfd'
* [svn-r16710] Purpose: Fix bug 1423Neil Fortner2009-04-081-0/+40
| | | | | | | | | | | | | | Description: Versions of the library between 1.3.0 and 1.6.3 have a bug which prevents them from opening any file that does not have the root group's symbol table information cached in the root group's entry in the superblock. Prior to 1.8 this was not an issue as this information was always cached. However, 1.8.0 stopped writing this information (which is not required by the file format specification), and these older versions can therefore not read files created or last written by versions 1.8.0 to 1.8.2. This fix modifies the library to once again add this information to the superblock (when using the old file format). Tested: jam, linew, smirom (h5committest)
* [svn-r15510] Description:Quincey Koziol2008-08-211-1/+1
| | | | | | | | Clean up warnings & formatting Tested on: Mac OS X/32 10.5.4 (amazon) More tests forthcoming
* [svn-r13253] Updated all C and C++ style source code files with the THG ↵Albert Cheng2007-02-071-2/+3
| | | | | | | | | copyright notice. Tested platform: Kagiso only since it is only a comment block change. If it works in one machine, it should work in all, I hope. Still need to check the parallel build on copper.
* [svn-r13116] Description:Quincey Koziol2007-01-061-0/+114
Add support for deleting all the attributes on an object, when they are dense and possibly shared. Also, add some testing routines, for better error detection. Should fix daily test failures also... Tested on: FreeBSD/32 6.1 (duty)