Feature add
Description:
Add a few new fields to the H5G_stat_t structure, to allow more information
about the object header to be retrieved.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Add feature
Description:
Add H5Fget_freespace() routine, to check the amount of free space in a
file. This information is only valid until the file is closed currently,
however (until we start recording the free space information in the file
itself).
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Improved algorithm (bug fix, sorta)
Description:
The internal algorithm for adding new IDs in the ID manager code (H5I) was
adding new IDs to the front of the linked list and never adjusting the order
of the items on the list (unless an ID was deleted). If many new objects were
created, they would push earlier ones _way_ down the list (especially if the
objects were being leaked in the application, as they appear to be in the
current HDF-EOS5 library) and would cause O(n) search time for items on the
list.
The ID caching code in the ID manager was avoiding this behavior sometimes,
but it was adding IDs that were looked up to the very tail of the cache and
they would frequently leave the cache before helping.
Solution:
Implemented a "move to front" scheme for the linked list of IDs, which
improves the lookup situation for frequently accessed objects.
Removed ID caching code now, as the "move to front" algorithm actually
works better.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Bug/feature fix.
Description:
Relax restriction on parallel writing to compact datasets to allow partial
I/O.
Updates to reference manual mentioning the issues involved are delayed until
reference manual 'lock' is removed later this week.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Bug fixes and code cleanup
Description:
Corrected output of array separator when vlen separator was needed.
datatypes.
Parts of formatting cleanup to greatly reduce the amount of trailing
whitespace emitted in output.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Bug fixes and code cleanup
Description:
Changes to h5dump code:
- Dump shared datatypes for any class of datatype, not just compound
datatypes.
- Cleaned up formatting to greatly reduce the amount of trailing
whitespace emitted in output. Also removed some spurious blank
lines from named datatype output.
Added code to generate named datatype attribute test file.
Added tests for dumping named datatypes in attributes for both DDL and
XML output.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Bug fixes and code cleanup
Description:
Re-worked ohdr test to use modification time messages instead of symbol
table messages, now that the library correctly tries deleting the
local heap and B-trees for the symbol tables (which didn't exist and
caused the test to fail).
Added tests for using named datatypes in attributes to verify that the
reference counts are being tracked correctly, etc.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Bug fixes and code cleanup
Description:
Lots of changes here:
- Fixed bug #691 - when shared datatypes are used in attributes they
are incorrectly copied into the attribute instead of referring
the the named datatype in the file. This required bumping the
version of the attribute message. The new version of the attribute
message is only written out when a shared datatype is used in
the attribute. [Also, this format change made the size of the
attribute smaller.]
- Added information to attribute debugging routine so that shared
datatypes are displayed correctly with the h5debug tool.
- Refactored the H5O* routines to extract code that was common to
several routines into subroutines to call.
- Added 'link' method for H5O message sub-classes, which increments
the link count on shared objects when a message is created which
shares them.
- Corrected [unreported] bug where the link count was not being
decremented on the shared object when a object header message
with a reference to that object was deleted from the file.
- Reduced size of shared message from 49 bytes (which was incorrect
anyway and should have been 48 bytes) to 10 bytes, which required
bumping the version of "shared" messages.
- Refactored some of the shared datatype routines to allow for easier
queries of "committedness" internally to the library and also
added routine to easily increment/decrement the reference count of
a shared datatype.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Description: On Linux systems valdrind tool complained about memroy leaks in the
following statements like
if(!a) free(a);
Solution: replaced the statements with
if ( a != NULL) free(a);
Platforms tested: eirene (too small for committest)
Misc. update:
Bug Fix
Description:
The FPHDF5 code couldn't create a dataset then access it. Turns out
that the "O_find_in_ohdr" code was protecting the object header which
pulls it into the cache then unprotecting it. However, this caused
the cache entry to be blown away and THEN we'd try to reread the
entry (via AC_protect) but it didn't have all of the data that the
find_in_ohdr function decodes for us decoded. It was also kind of
unnecessary since we can just protect then call O_find_in_ohdr.
Solution:
Removed the AC_protect and AC_unprotect from O_find_in_ohdr. Called
AC_protect before calling the O_find_in_ohdr function.
Platforms tested:
Linux (Fortran, C++)
IRIX (parallel, Fortran)
Sun (Fortran)
Misc. update:
Code cleanup
Description:
Clean up a few loose ends and warnings for the 1.6 compatibility changes
to the error API.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
Description: Standard output of Error API test has some non-standard information
Solution: use sed to remove non-standard information
Platforms tested: h5committest
Description: The standard output from Error API test has some non-standard
message like path name or line number.
Solution: use sed to remove any non-standard information in testerror.sh
Platforms tested: h5committest
Description: The error test script compares the error messages to the standard
output. The file names and line numbers in the messages can be different
for users.
Solution: Temporarily disable the test until find a good solution.
Platforms tested: None. Disabling a test.
Added the entry of document of the three basic performance tools.
The information was provided by Robb long time ago.
Platforms tested:
Viewed by IE.
Misc. update:
to avoid printing error messages.
Description: If enable-hdf5v1_6 is configured in, make some functions
compatible with v1.6. Error test program print out some error messages as
it succeeds.
Solution: Use #ifdef H5_WANT_H5_V1_6_COMPAT statements. Use shell script
to compare error test output with the standard one.
Platforms tested: h5committest
Bug fix
Description:
The op-snapshot checkout "ate" the next option by mistake.
Solution:
Remove the extra shift.
Platforms tested:
Can't really test it without doing a real snapshot test.
Pretty sure it is correct and will watch the result tomorrow.
Misc. update:
Code cleanup
Description:
Clean up various warnings and parameter mis-matches, etc.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to need h5committest
Removed Dead Code
Description:
Some of the FPHDF5 code was dead (I thought it'd be useful at one
point, but was wrong).
Solution:
Removed
Platforms tested:
Linux (FPHDF5 specific. No need for h5committest)
Misc. update:
Bug fix
Description:
Buffer for decoding superblock's driver information was too small when
using some VFDs (like the multi-file VFD).
Also made FPH5 code more portable and obvious when it's broadcasting the
superblock from the captain process to the other clients.
Solution:
Allocate the buffer for the driver information dynamicly
Platforms tested:
Copper
No h5committest because it's already working on other platforms.
Disable "big" parallel tests until I get a chance to look into the
problems (probably during/after the workshop).
Platforms tested:
Eyeballed
Too minor to require h5committest
FPHDF5 Update
Description:
Added locking/unlocking to the AC_protect/AC_unprotect calls. The SAP
does all of the caching so nothing should be saved on the client
side. So, when the client unlocks the metadata, it can destroy it.
The metadata is always read from the SAP during a lock.
Platforms tested:
Linux (FPHDF5 specific change. No need for h5committest)
Update
Description:
A lot of modifications for the FPHDF5 stuff:
H5AC.c
H5ACprivate.h - Removed AC_find (it's replaced with AC_protect
and AC_unprotect). Added flushing if it's an FPHDF5 driver and
we're doing an AC_set or AC_unprotect with the dirty flag set.
H5B.c - Split up the B_flush function into different functions
since the one function was doing serialization which is better
left as a separate entity.
H5D.c - Removed some FPHDF5 code that was incorrect
H5F.c - Split up the F_flush function so that it no longer
allocates file space. Created new functions (F_init_superblock,
F_read_superblock, and F_write_superblock) for greater modularity
and so that the FPHDF5 non-captain processes can read the
superblock after the captain process writes it.
H5FD.c - Error message correction.
H5FDfphdf5.c - Removed MPI barrier call that wasn't needed.
H5FPclient.c
H5FPserver.c - Modified so that if a process requests data that
isn't exactly aligned, we can return it if we have the block that
contains the requested address.
H5G.c
H5Gent.c
H5Gnode.c
H5HL.c
H5HLpkg.h
H5HLprivate.h
H5Oefl.c - Removed the H5HL_peek function since it was doing a
(now unsafe) holding of the information in the cache. Replaced
with protect and unprotect calls.
H5TB.c - Error fix. The TB_dless function wasn't working
properly.
H5Gstab.c - Format change.
H5err.txt
H5Edefin.h
H5Einit.h
H5Epubgen.h
H5Eterm.h - Added new error code.
Platforms tested:
Modi4 (paralle, Fortran)
Sol (Fortran)
Linux (C++, Fortran)
Copper (Parallel, Fortran)
Misc. update:
Improvement
Description:
The -w timeout option is not supported by all hosts.
Added the "ping -c 3" possible PING command.
Platforms tested:
Tested in eirene by hand only.
Misc. update:
Bug fix
Description:
The MPI_File_set_size() routine on ASCI Red is not able to extend files
so that they are larger than 2GB.
Solution:
Add an extra macro which controls whether MPI_File_set_size() can handle
>2GB offsets or if our "older" way of reading a byte, then writing a byte at
the appropriate offset should be used.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Bug fix
Description:
The MPI_File_set_size() routine on ASCI Red is not able to extend files
so that they are larger than 2GB.
Solution:
Add an extra macro which controls whether MPI_File_set_size() can handle
>2GB offsets or if our "older" way of reading a byte, then writing a byte at
the appropriate offset should be used.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest