summaryrefslogtreecommitdiffstats
path: root/doc/VFD_SWMR_Guide.md
blob: 4c707202aee48adc1d110824063f07392007623a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# VFD SWMR User's Guide

## Caveats

A few library functions are known to work incorrectly with VFD
SWMR.

* Variable-length data written using VFD SWMR may be inaccessible
  or inconsistent to a VFD SWMR reader until the writer closes
  the file.  Instead of the proper variable-length data, a reader may
  read NULL or arbitrary bytes.  Inconsistencies may also cause the
  reader to crash. 

* Applications should take care using HDF5 iteration APIs, especially
  when iterating large numbers of objects or using long-running
  application callbacks.  While the library is in an iteration routine,
  it does not track changes made by the writer.  If the library spends more than
  `max_lag` ticks in the routine, then its view of the HDF5 file will become
  stale.  Under those circumstances, HDF5 content could be mis-read, or the
  library could crash with a diagnostic assertion.

* At the present level of development, the writer cannot invalidate a reader's HDF5 object handles (`hid_t`s).  If a reader holds an object open---that is, it has a valid handle (`hid_t`) for the object---while the writer deletes it, then
  reading content through the handle may yield corrupted data or the data from some
  other object, or the library may crash.