Network

 
AuthorCommitMessageCommit Date
David YoungDavid Young
d9ee55cbd97Remove extraneous whitespace. NFCI.
David YoungDavid Young
1137ffef6abAfter adding a shadow page to the deferred free list, set the entry's page number to 0 so that we cannot free it again by accident.
David YoungDavid Young
8d6c1eca16eAdd a log outlet and shorten the name of an existing outlet.
David YoungDavid Young
25bafe0063cFix the width of an index variable.
David YoungDavid Young
a788202831aIf the shadow-index size is 0 in the current step, don't calloc(3) anything, since calloc(0, ...) is undefined.
David YoungDavid Young
9678dcffbf0Make some changes to conserve filespace and ensure that all filespace is eventually reclaimed. Defer reclamation of raw data filespace, only. XXX Deferring only raw-data reclamation isn't *quite* sufficient because XXX a writer could conceivably reuse metadata space as raw-data space XXX before max_lag ticks have elapsed. Readers could see metadata XXX corrupted by raw data. Once a file starts to close, stop deferring reclamation. In H5MF_free_aggrs(), perform all deferred reclamations i...
David YoungDavid Young
fd079a23574Improve diagnostic logging.
David YoungDavid Young
1041983d870Standardize and shorten diagnostic messages to help my search for the leak of shadow-file space.
David YoungDavid Young
a1175c1b98dRemove superfluous comment. Remove unnecessary variable initializations: the compiler will tell us if the variables are used before they're set. NFCI.
David YoungDavid Young
40c638dcab8Remove superfluous whitespace, insert whitespace around / operator, repair for-loop indentation. NFCI.
David YoungDavid Young
9c957495db6Update comments, shorten comments, remove superfluous comments.
David YoungDavid Young
9b5384b4366Add a `reader` personality to vfd_swmr_zoo_writer. Remove the disused `-t` option. Disable the error stack across create_/validate_zoo() calls.
David YoungDavid Young
69fcb52eca6Prepare for reuse in vfd_swmr_zoo_{reader,writer}: in validate_zoo()/check_zoo(), instead of checking/modifying the global variable `pass`, just return `false` on failure, `true` on success. Update test `cache_image` to match.
David YoungDavid Young
817756a0e0aRename process_deferred_frees as H5MF_process_deferred_frees and make it available to other files. Make the tick number a parameter instead of using the f->shared->tick_num, so that we can pass a maximal tick number and that way reclaim all of the deferred frees.
David YoungDavid Young
da70686a5a2Fix whitespace at end (beginning?) of line. NFCI.
David YoungDavid Young
928c820d045Straggler: add htri_to_string() for converting htri_t to a string constant.
David YoungDavid Young
d0b8accbc1fRelax H5F_update_vfd_swmr_metadata_file() argument checking so that we can call it with num_entries == 0 and a non-NULL `index`. Delete some code that isn't necessary if `num_entries == 0 && index != NULL` is allowed. NFCI.
David YoungDavid Young
c7af3df8901Simplify: change `if (cond) { assert(FALSE); }` to `assert(!cond);`.
David YoungDavid Young
ba7dde8ba98Lower staircase. NFCI.
David YoungDavid Young
53aee36c3e9Delete an #ifdef H5MV_VFD_SWMR_DEBUG debug fprintf that probably never worked quite as intended.
David YoungDavid Young
9db701e95b3Add a log outlet. Replace #ifdef H5MV_VFD_SWMR_DEBUG debug fprintf's with hlog_fast() calls.
David YoungDavid Young
db5942d3f19Add log outlets. Convert existing #ifdef H5MF_ALLOC_DEBUG{,_MORE} debug fprintf's to hlog_fast() calls. Add some new hlog_fast() calls.
David YoungDavid Young
5f58844bd51Delete ridiculous comments. Remove superfluous curly braces. NFCI.
David YoungDavid Young
989b6c20635Delete ridiculous comment and excess for-loop whitespace. NFCI.
David YoungDavid Young
57ae4206ca7Delete ridiculous comments and repair some whitespace. NFCI.
David YoungDavid Young
7d50e9c89e7Be brief: turn 7 lines of if-else to one line of ?:. Be sensible: don't assert a pointer we just dereferenced is non-NULL.
David YoungDavid Young
78fac0241a5Let us use space as well as comma to separate outlet=yes|no clauses in the HLOG environment variable.
mainzermainzer
0135ec8d61aReverted optimization in the metadata cache that avoided re-reading the first portion of a metadata cache entry in speculative reads. This is necessary for VFD SWMR as it presumes that metadata entries are read and written atomically. See comments in H5C.c / H5C_load_entry() for further details.
David YoungDavid Young
14a8543c7a8Remove a duplicate `#define H5FD_TESTING` line.
David YoungDavid Young
8ccff19e02cAdd option flag `-v` for verbose messages. Alphabetize the options switch-statement.
David YoungDavid Young
ad8460cc166When creating a shadow index for testing, increase the page number from one entry to the next by *at least* 1 so that the index is well-formed. This fixes a crash that occurred with H5_SHADOW_INDEX_SEED=1585006453.
David YoungDavid Young
e7b2095809fThe forced-fail index comes only from the environment, never from time(3).
David YoungDavid Young
85f5bfb3b7eUse the name vfd_swmr_zoo.h5 for the zoo file, not vfd_swmr_vlstr.h5.
David YoungDavid Young
cb5e1ead29aLet tests provide a "hook" that runs after each step in create_zoo(). Provide a hook in vfd_swmr_zoo_writer that calls H5Fvfd_swmr_end_tick().
David YoungDavid Young
51b8fa3ffefTake a stab at a "zoo" writer for VFD SWMR: write all of the same objects as the cache_image test does. The zoo writer is a work in progress. This version is useful as a reproducer for the hang in the global heap that I stumbled over, yesterday. I run this to reproduce, env HLOG="pbio=on" ./vfd_swmr_zoo_writer -W -a
David YoungDavid Young
52f8d8a1b15Deduplicate create_zoo() and validate_zoo() and refactor for reuse by VFD SWMR tests. This change reduces the length of genall5.c by 171 lines.
David YoungDavid Young
a4a2dd2cc07Add a log outlet for pagebuffer I/O and subordinate outlets for pagebuffer reads and writes: pbio, pbrd, pbwr. In H5PB_read() and H5PB_write(), log only global heap accesses, for now.
David YoungDavid Young
b6b43e6dc4dProtect against an assertion during H5Fflush(): do not doubly-increment the tick number in H5F_vfd_swmr_close_or_flush() when just flushing, because that made the assertion in H5PB_vfd_swmr__set_tick(), that the tick number had not increased by more than one, fail.
David YoungDavid Young
cca96177427Use more iterations on the variable-length string reader & writer to lower the possibility of a false test failure.
David YoungDavid Young
f7b44e40c55In H5PB__write_meta(), extend a single-page entry when overwriting it with multiple pages. Update statistics to maintain consistency. Refactor a bit: in H5PB__write_meta(), move code that's in both the if- and else- branch to either before the if-else or after and de-duplicate. In H5PB_vfd_swmr__update_index(), always update the length of a shadow-index entry to the current size of its corresponding page-table entry. In H5PB_vfd_swmr__update_index(), disregard shadow-index entries that aw...
David YoungDavid Young
5d949764230Join some lines. NFCI.
David YoungDavid Young
705f52d2228Test H5Dread() for the right "success" conditions. I'm not sure how this even appeared to work, before.
David YoungDavid Young
3d51febb376Fix spelling, alread -> already. NFCI.
David YoungDavid Young
ae351c23763Add tests for the two expected failure modes for variable-length (VL) strings in VFD SWMR mode.
David YoungDavid Young
9e81f0103cdAdd disable_estack() and restore_estack() for disabling the current error-stack handling and restoring the previous error-stack handling.
David YoungDavid Young
9592b80913eMention the problems VFD SWMR has with variable-length data.
David YoungDavid Young
8cc8d63d5e7Update Guide. Switch to a short and informative function name.
David YoungDavid Young
4e4c1c38508Add my work in progress on variable-length string test for VFD SWMR.
David YoungDavid Young
ecea500047aStart a user's guide. Mention problems with variable-length data.
David YoungDavid Young
3f2e3659c20Stop changing the type of global-heap storage to raw data before accessing the page buffer. Now variable-length (VL) data such as VL strings work with VFD SWMR. This change also makes the library more consistent in its treatment of global-heap storage, since it's always been allocated as metadata, not raw data.