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
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 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.
Code cleanup, etc.
Description:
Generalize Ray's datatype fixes to handle packing compound datatypes which
are the base type of an array or variable-length type, etc.
Also track "packedness" of a compound datatype from it's creation, instead
of only setting the 'packed' flag after the datatype was explicitly packed.
Updated docs to reflect that a compound datatype is allowed to grow (but
not shrink).
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Bug fix.
Description:
Correct bug where a file opened twice, once with read-write permission
and once with read-only permission would cause closing the file with the
read-only file ID to fail because it was trying to flush information out
of the file.
Solution:
Check the permissions on file IDs that are being closed and only flush
when the particular file ID was opened with write permission.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too small to need h5committest
Misc. update:
Bug fix
Description:
The VFL driver ID in a file's access proprty list wasn't being reference
counted correctly, causing the VFL driver to get prematurely closed after
several calls to "H5Pget_access_plist->H5Pclose".
Solution:
Increment VFL driver ID reference count when copy of file's access property
list is made in H5Pget_access_plist()
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Code cleanup
Description:
Clear up a couple of minor issues with compiling the library with a C++
compiler.
Platforms tested:
FreeBSD 4.9 (sleipnir)
Too minor to require h5committest
Bug Fix and code cleanup
Description:
Correct error in H5T_detect_class that was causing nested compound datatypes
with to not detect the datatype class of fields correctly, which caused errors
with fill-values, variable-length datatypes and chunks later on.
Return the rank of the array datatype from H5Tget_array_dims(), like
H5Sget_dims().
Lots of cleanups to datatype code, to make the handling of arrays, compound
types, variable-length strings and sequences and enumerated types more
consistent and robust.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
Bug fix
Description:
When datasets are deleted from a file, they are removed from the sieve
buffer, but instead of invalidating only the part of the sieve buffer affected,
the sieve buffer code would throw away the entire sieve buffer, potentially
including other raw data in the buffer that hadn't been written to disk yet.
Solution:
Improve the sieve buffer clearing code to handle partial invalidations.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug fix
Description:
H5Gget_objname_by_idx should allow NULL for the 'name' parameter, to allow
for querying for the name's length.
Solution:
Allow NULL for the 'name' parameter, the internal functions were already
ready to handle that case.
Clean up RM information about H5Gget_objname_by_idx and
H5Gget_objtype_by_idx also.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug fix
Description:
H5Gget_num_objs, H5Gget_objname_by_idx and H5Gget_objtype_by_idx were
only accepting a group ID, instead of a location ID, as our documentation for
them stated.
Solution:
Allow them to accept a location ID.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug fix
Description:
I/O on chunked datasets with a scalar dataspace for the memory dataspace
was not working correctly.
Solution:
Translate the scalar dataspace into a n-dimensional (where n is the number
of dimensions of the file's dataspace) dataspace of dimensions 1x1x1...
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest (modulo modi4 which is not working correctly)
Code cleanup
Description:
Changed version #'s returned from H5Pget_version from 'int *' to
'unsigned *' since we are never going to be using negative version #'s... :-)
Platforms tested:
FreeBSD 4.8 (sleipnir)
too small to need h5committest
Bug fix
Description:
Linking and unlinking objects with multiple internal and/or trailing '/'s
was not handled well in the library.
Solution:
"Normalize" strings by removing trailing '/'s and collapsing multiple
internal '/'s down into just one '/' before operating on the name.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committested
Bug fix
Description:
Allow a user block to be "inserted" in front of a file (probably by
writing a validly-sized userblock to a new file and then appending another
HDF5 file to the new file).
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committested
Code cleanup & bug fix
Description:
Clean up code, adding error checking where appropriate
Fix a number of routines which were clearing the default error stack
before checking some information about that stack.
Set the version # of the library correctly when it is registered.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committested
Code cleanup/bug fix
Description:
Chase error API by including error class in calls to H5Epush()
Corrected bugs with automatic error printing routine checking
Enabled some commented out tests.
Platforms tested:
h5committested
Bug fix
Description:
I/O on chunked datasets with point selections was not working correctly.
Solution:
Re-wrote some parts of raw data I/O routines that build the selections for
each chunk to correctly handle point selections.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Bug fix
Description:
When a non-default indexed storage B-tree internal 'K' value is set by the
user, the chunked datasets created in that file (until it is closed) use the
user's 'K' value and the data can be accessed correctly, but the 'K' value is
not stored in the file.
However, once the file is closed and re-opened, the non-default 'K' value
is lost and the data in the chunked datasets will not be able to be accessed
correctly.
Solution:
Store the indexed storage B-tree internal 'K' value in the superblock.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Code cleanup
Description:
Finish converting the B-tree 'K' values to use unsigned integers, rather
than signed ones, since negative amounts of entries in a B-tree node aren't
meaningful.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Code cleanup
Description:
Add in rest of szip "options mask" macros that were missing. Also made
"raw" options mask set by the library, instead of requiring users to always set
it.
Platforms tested:
FreeBSD 4.8 (sleipnir)
Minor tweaks too small fo h5committest
Improve test a bit
Description:
Add a small bit of testing for the array field in a compound datatype.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Cray SV1 (wind)
Cray T3E (hubble)
Cray T90 (gypsy)
Code cleanup
Description:
Include roughed-in, but commented out code for performing I/O on time
datatypes.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Cray SV1 (wind)
Cray T3E (hubble)
Cray T90 (gypsy)
Bug fix (backward compatibility)
Description:
Changes we've made during development of the 1.5.x branch had broken the
feature of allowing user's callbacks to H5Giterate to return a value
through the library back to the application which called H5Giterate.
Solution:
Better testing for this feature.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Expand test
Description:
Expanded # of dangling objects from 2 to 1000, to stress ID cleanup code
in library more.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
More tests
Description:
Added tests to make certain that failed dataset, group, named datatype and
attribute creations clean up the file space they allocated before failing.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Refactored code
Description:
Moved duplicated "get_file_size()" function from a couple of tests into a
central location.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Improved tests
Description:
Added test for dangling attributes.
Also added code to test with weak, semi & strong file close degrees for
all tests.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Test bug fix
Description:
The fill time in a dataset with no fill value information created with an
older version of the library was getting set to H5D_FILL_TIME_ALLOC instead of
the new default H5D_FILL_TIME_IFSET and was causing H5Dcreate() calls with that
dataset creation property list to fail now.
Solution:
Set the new default in the fill time initialization for missing fill value
information.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
Driver error
Description:
The tmtimeo.h5 file was supposed to have been generated from gen_old_mtime.c
which was compiled with a pre-1.5.x version of the library, however it appears
to have been created with a newer version of the library and did not contain
the older form of the mtime object header information that was being tested for.
Solution:
Run a version of gen_old_mtime that was compiled & linked against an older
version of the library to generate the tmtimeo.h5 file.
Had to update the modification time used for testing in the mtime.c file
also.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
New feature/Bug fix
Description:
Add new fill time value - H5D_FILL_TIME_IFSET which writes the fill value
to a dataset if the user has defined one, otherwise not writing the fill value
to the dataset.
Platforms tested:
FreeBSD 4.8 (sleipnir) serial & parallel
h5committest
Description: H5Tget_native_type fails for multiple kinds of datatype on Cray; it fails
fix-length string type, too.
Platforms tested: Cray, h5committest
Test bug fix
Description:
Chunked datasets with early space allocation and unlimited dimensions were
running into problems where the dataset's "layout" message was marked as
constant too early, preventing the dataset's dimensions from being extended.
Solution:
Change logic for marking the layout message constant to wait a bit longer.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/parallel
h5committest
Bug fix
Description:
An earlier checkin changed some of the assumptions about single block
hyperslabs, causing them to fail in odd ways.
Solution:
Fix errors with single block hyperslabs by keying off of count==1 instead
of stride==1.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/parallel
h5committested
Code cleanup & performance improvements
Description:
Optimize hyperslabs that are built to detect situations where "regular"
hyperslabs can be recovered from span tree descriptions.
Also, improve "same shape" routine to correctly work with all the different
combinations of selections.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/C++
FreeBSD 4.8 (sleipnir) w/parallel
h5committested
API tweak.
Description:
The H5Sget_select_bounds() API call was using hsize_t arrays for retrieving
the 'start' and 'end' coordinates, which is counter to the rest of the dataspace
API.
Solution:
Change the arrays to be hssize_t instead.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/C++
FreeBSD 4.8 (sleipnir) w/parallel
h5committested
Misc. update:
Updated all docs for this change.
Added 1.4 compatibility #ifdef's
Code cleanup
Description:
Clean up older settings for strides of hyperslabs
Platforms tested:
h5committestted (although Fortran tests failed for some reason)
Code cleanup
Description:
Call srand(time(NULL)) before performing tests, to better randomize numbers
chosen for testing.
Platforms tested:
h5committestted (although Fortran tests failed for some reason)
Code cleanup
Description:
Free malloc'ed buffer of 0 bytes when H5_MALLOC_WORKS is defined, to make
purify happier.
Platforms tested:
h5committestted (although Fortran tests failed for some reason)
Code cleanup
Description:
Remove redundant "Testing" from test output.
Platforms tested:
h5committestted (although Fortran tests failed for some reason)
Bug fix
Description:
Failed tests were not being reported correctly to main test routine, so
they were not stopping a 'make check'
Solution:
Changed '1' to '-1' for failures.
Platforms tested:
h5committestted (although Fortran tests failed for some reason)
Purpose: Maintenance and bug fixes and test of latest szip library..
Description: Recently Quincey enabled MEDIUM test for istore. That caused
daily tests to fail on verbena. It looks like that test
creates a pretty big file, and afs write fails. Test passes
when run in /tmp.
Solution: Disable MEDIUM test and filed bug report to investigate the problem
little bit more carefully.
Platforms tested: verbena, arabica, arabica-64 (since I also tested newest szip)
Misc. update:
Small feature.
Description:
Change the wording for the use of HDF5_PARAPREFIX from Remark to hint.
Also made process 0 be the only one printing the hint rather all
processes duplicating the same hints.
Platforms tested:
Copper, both serial and parallel.
Did not do h5commit test since this is very localized and the above
tests covered both cases already.
Misc. update:
Code cleanup
Description:
Remove debugging information and match bug-fix changes to szip filter
code.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest not needed.
Code cleanup
Description:
Limit the scope on more function prototypes/macros/typedefs.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest not necessary.
New test
Description:
Added test to check for dangling objects being handled correctly by the
library.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committested
Bug fix
Description:
Iterating over the attributes of an object without any attributes was
returning FAIL instead of 0 as the RM states.
Solution:
Changed return value of H5Aiterate for objects without attributes to be 0
and added regression tests for this.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest not needed.
Description: when a datatype element size is bigger than I/O datatype
conversion buffer(1MB), library reports failure.
Solution: adjust conversion buffer to be at least equal to one element size
Platforms tested: h5committest
Add windows specified macro H5_TESTDLL for test routines.
Description:
See the previous CVS message.
Solution:
Platforms tested:
windows2000(will not affect other platforms)
Misc. update:
Code cleanup
Description:
Clean up warnings exposed by compiling on O2K. Also, revert some of Bill
and my changes to the H5S_mpi_opt_types_g, etc. and settle them back into their
original location.
Platforms tested:
h5committested.
Description: H5Sselect_hyperslab and H5Sselect_elements didn't check scalar
dataspaces.
Solution: put error detection in those functions.
Platforms tested: eirene(simple change).
Feature change
Description:
HDF5_PARAPREFIX has been default to various values like /tmp,
/var/tmp, ... None of these solve all problems and all of them
created new problems. For LLNL GPFS, '.' is more appropriate since
they can do the build right inside gpfs. Same for NCSA Copper.
The special setting for Janus is still retained since that is a
one of a kind machine and the uses could use all the help.
Platforms tested:
h5committested (using sol instead of arabica) plus eirene(pp).
Misc. update:
New feature/enhancement
Description:
Chunked datasets are handled poorly in several circumstances involving
certain selections and chunks that are too large for the chunk cache and/or
chunks with filters, causing the chunk to be read from disk multiple times.
Solution:
Rearrange raw data I/O infrastructure to handle chunked datasets in a much
more friendly way by creating a selection in memory and on disk for each chunk
in a chunked dataset and performing all of the I/O on that chunk at one time.
There are still some scalability (the current code attempts to
create a selection for all the chunks in the dataset, instead of just the
chunks that are accessed, requiring portions of the istore.c and fillval.c
tests to be commented out) and performance issues, but checking this in will
allow the changes to be tested by a much wider audience while I address the
remaining issues.
Platforms tested:
h5committested, FreeBSD 4.8 (sleipnir) serial & parallel, Linux 2.4 (eirene)
Purpose: Cray T3E maintenance with Raymond's help
Description: fillval test failed for compact dataset since the
size of the dataset was bigger than 64K.
Solution: Reduced the dataspace of the compact dataset to 1024 elements.
Platforms tested: T3E; it was also tested with semi-manual h5committest.
(I had to built and test manually on modi4 parallel because
of some weird failure of h5committest on modi4)
Misc. update:
code warrior fix
Description:
eliminate the CW failure on getname.c
restrict the H5_NO_FILE_SHARING just to the test file_close of testhdf5 test
Solution:
the CW failure on getname.c can be eliminated if a unmount of the file is made before closing it
on tfile.c the failure is due to the file sharing flag of CW, and the test is maintained as before
Platforms tested:
Windows 2000 (octopus)
Linux 2.4 (rockaway)
SunOS 5.7 (arabica)
IRIX 6.5 (modi4)
Misc. update:
Revert last change (at least temporarily)
Description:
Revert last "NO_SHARED_WRITING" ifdefs after reviewing the tests that were
ifdef'ed out. I don't think that these tests should cause a problem, so I
would like them reviewed again to see if there is a file handle leak in the
library (or test).
Platforms tested:
FreeBSD 4.8 (sleipnir)
Triple check not needed.
Code restructure.
Description:
Restructured tests so they shouldn't depend on shared open()'s and can be
tested with CodeWarrior
Platforms tested:
FreeBSD 4.8 (sleipnir)
Triple check not needed.
code warrior port
Description:
added a flag H5_NO_SHARED_WRITING, it is defined only for CW in the H5pubconf.h
this avoids doing some tests for CW that fail on shared writing
Solution:
Platforms tested:
windows (cw and ms)
Linux 2.4 (rockaway)
SunOS 5.7 (arabica)
IRIX 6.5 (modi4)
Misc. update:
Purpase: Fortran Windows DLL support
Description: Fortran test uses functions h5_fixname and h5_cleanup from h5test.c.
Those were not exported, and Fortran could not link while using DLLs.
Solution: Added H5_DLL to functions prototype to export them from C DLL.
Platforms tested: Windows, h5committested.
Misc. update:
removed and change comments
Description:
removed the modification comment about the while loop, it is not sufficiently important to be there
changed the "Id to name" comment in the test description, it was incorrecly about other thing
Solution:
Platforms tested:
none , just comments
Misc. update: