| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
original installation prefix from the examples prefix. Use that
relative path to locate the current installation prefix, always. Fall
back to an absolute installation prefix if the relative path cannot be
derived.
|
|
|
|
| |
c/.
|
|
|
|
|
|
|
| |
original installation prefix from the examples prefix. Use that
relative path to locate the current installation prefix, always. Fall
back to an absolute installation prefix if the relative path cannot be
derived.
|
|
|
|
|
|
|
|
|
| |
This is handy for NetBSD where HDF5 examples are installed
by convention in $prefix/share/examples/hdf5/ rather than in
${prefix}/share/hdf5_examples/, which is the HDF5 default.
Place hdf5_examples/ under ${datarootdir} which on most systems will be
${prefix}/share/, anyway.
|
| |
|
| |
|
| |
|
|
|
|
| |
vfd_swmr_zoo_writer, previously.
|
|
|
|
|
|
| |
columns. If the number of datasets is greater than the number of steps,
then only pause between steps, do not pause between individual datasets
written/verified. Otherwise, pause between each dataset written/verified.
|
| |
|
|
|
|
| |
provide a H5HG_trap() routine.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that are longer than the buffer that the caller supplied: the checksum
usually will fail, but that's not actually a fatal condition, and
usually we will have another opportunity to verify the checksum.
In H5FD_vfd_swmr_read(), remove a bunch of disused code.
In H5FD_vfd_swmr_read(), do not re-read a shadow image that has a
bad checksum, because a bad checksum indicates a serious problem
(writer outran reader, OS defect, hardware failure) from which
H5FD_vfd_swmr_read() cannot recover.
Rationale: the writer write(2)s new shadow images before the new index,
and the new index before the new header. In H5FD_vfd_swmr_read(),
the reader has read(2) both the index and the header in full. POSIX
semantics indicate that in these circumstances, the last shadow image
write(2) MUST be completely visible when we read(2). That is, the index
write(2) & read(2) and the header write(2) & read(2) pair cannot
divide a preceding shadow-image write(2).
The reader may see a "torn" image at this juncture if, for example,
the writer got max_lag ticks ahead of it and reused the storage for
this shadow image. Even if the reader "recovers" by re-reading the
image until its checksum is correct, it cannot be sure that the
image thus read is the right one for the HDF5 address passed to
H5FD_vfd_swmr_read(), and it cannot be sure that the image thus read is
not stale, because it's operating with an out-of-date shadow index.
Add log outlets swmr_read, swmr_read_exception, and swmr_read_err.
Log to `swmr_read` on entry to H5FD_vfd_swmr_read(), log to
`swmr_read_exception` when checksums are skipped for exceptional
conditions (page buffer not configured, buffer shorter than shadow
image), and log to `swmr_read_err` when the checksum fails.
|
|
|
|
|
| |
to keep the cumulative bytes in the tick list up-to-date. That prevents
an assertion, later.
|
| |
|
|
|
|
| |
`jelly` libtool adds an `lt-` prefix to the program name.
|
|
|
|
|
| |
overlapped by the freed region. Previously, the page-table entries were
only freed on one success path through _xfree_impl().
|
|
|
|
|
|
| |
VFD_SWMR_LEAVE() for use by FUNC_ENTER_API/_LEAVE_API macros. In the
macros, don't HGOTO_ERROR(), since that will jump back to the `out`
label, but HDONE_ERROR() on error, instead.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
that expand in one or two dimensions, depending on the setting of the -d
option argument.
|
|
|
|
|
| |
buffer size, using vsnprintf(3), but exits with err(3)/errx(3) if the
buffer is too small or if vsnprintf returns < 0.
|
|
|
|
|
| |
the random seed with an environment variable, H5_ZOO_STEP_SEED, and the
maximum delay in milliseconds with a command-line option, `-m ms`.
|
|
|
|
|
| |
writer/reader, since that's all we need. Avoid deadlock by flushing the
file before waiting for the reader's message.
|
|
|
|
| |
before waiting for the reader's message.
|
|
|
|
| |
characters differently than other parse failures.
|
|
|
|
| |
Briefly describe the variable-length test with a comment.
|
|
|
|
| |
of several dbgf statements from 1 to 2 so that `-q` quiets them.
|
|
|
|
|
|
|
|
|
| |
output streams using STDIN_PATH and STDOUT_PATH. I will use that for
the zoo reader and writer. Move redirection of standard error output to
the standard output stream outside of the curly braces, since usually
I want to save the `echo` and `wait` output, too, and it makes the
redirection of the supervised program a little easier to follow, I
think.
|
|
|
|
| |
reuse by the zoo writer.
|
|
|
|
| |
test/vfd_swmr_common.h and in all files that #include it. Now I can
|
| |
|
|
|
|
| |
subroutine.
|
|
|
|
|
| |
the writer expects to read a character on its standard input stream when
the reader is ready for it to delete the zoo content.
|
|
|
|
| |
from the shadow file.
|
| |
|
|
|
|
|
| |
H5PB_remove_entries(), to remove *all* pages overlapped by the freed
space, instead of just the first one.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
compact datasets.
Bundle the zoo-test configuration into a new type, zoo_config_t.
Add a couple new "zoo" test phases, "delete" and "validate-deletion", to
the existing "create" and "verify" phases. Give names and numbers to
all phases with the new `enum`, `phase_t`, and refactor so that tend_zoo
runs a selection of phases at each step.
Stub the "delete" and "validate-deletion" phases for most test steps.
Actually implement for compact dataset (ds_cpt_i) test.
In tend_zoo(), delay for 50 milliseconds after running all steps.
Really, this should delay after each step....
Implement vfd_swmr_writer_may_increase_tick_to() and
vfd_swmr_reader_did_increase_tick_to() with a file that reader and
writer share. The reader saves its current tick number in the shared
file. The writer does not advance its tick number past the reader's.
Collect some statistics in vfd_swmr_writer_may_increase_tick_to() and
print them before the writer exits.
Add option flags for skipping compact dataset tests (-C) and for
printing error stacks (-e). Update the usage message, which was
stale before the new options were added.
Delete some dead code.
Add #if 0'd-out code for the reader to wait for the writer before
running "delete" and "validate-deletion" steps.
|
|
|
|
|
| |
(commented out) private version of strsignal(3), just in case we need
one on some platform.
|
| |
|
| |
|
|
|
|
|
| |
of vfd_swmr_writer_may_increase_tick_to() and
vfd_swmr_reader_did_increase_tick_to().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
tells whether the call may wait for the reader tick to catch up.
Add stub routines vfd_swmr_writer_may_increase_tick_to() and
vfd_swmr_reader_did_increase_tick_to() for tests---e.g.,
vfd_swmr_zoo_writer/_reader---to use to coordinate their tick numbers.
vfd_swmr_writer_may_increase_tick_to(new_tick, wait_for_reader) returns
true if the writer may increase its tick number to `new_tick` without
overrunning the reader.
A reader uses vfd_swmr_reader_did_increase_tick_to() to tell a writer
that its tick number has increased.
|
|
|
|
|
|
| |
unnecessary comments and trim whitespace. Remove unnecessary backslash
line continuations and add semicolons to HGOTO_ERROR() statements.
NFCI.
|
| |
|
| |
|