Bug fix.
Description:
AIX complained if some files are still open when MPI_Finalize is called,
so code called _exit without calling MPI_Finalize. But in Linux hosts
with MPICH, the MPI processes terminated but the launch processes got
stuck waiting for those processes to end properly and they would hang
on forever. As more tests ran, more processes got stuck.
Solution:
In order to please both AIX and MPICH, the MPI file handles are retrieved
and closed outside of the HDF5 library, then call MPI_Finalize and then
_exit.
Tested:
in heping and copper.
Bug fix.
Description:
H5FD_get_vfd_handle() would return okay even if an VFD did not have the
get_vfd_handle callback function defined.
Solution:
Return failure if get_vfd_handle function is not defined.
Tested:
in heping and copper.
Reduce memory usage for common cases of I/O pipeline filter memory usage.
Also, clean up some more code...
Tested on:
Linux/32 2.6 (chicago)
Linux/64 2.6 (chicago2)
Finish new version of the I/O pipeline message, which is much smaller than
the previous version. This version is used with the "use the latest version
of the format" flag.
Closed several memory leaks/overruns (found with valgrind).
Also, lots of compiler & formatting cleanups.
Tested on:
Linux/32 2.6 (chicago)
Linux/64 2.6 (chicago2)
Fix several errors in the "latest version" of the object header format
changes and enable the new version when requested now.
Clean up several confusing or duplicated sections of code.
Tested on:
Linux/32 2.4 (heping)
Linux/64 2.4 (mir)
FreeBSD/32 4.11 (sleipnir)
1. bug fix. the h5_cleanup file names were not build properly on the h5repacktest call
2. added only a call to test_bigout.h5 to be clean, because the other files are generated anyway by the shell script. test_bigout.h5 is only made on the C program part (h5repacktst)
compression test.
Tested that the file is removed on juniper and heping.
Running reconfigure also regenerated the H5E* files (I think this means
somebody updated these files but didn't run reconfigure).
requests large data from file, to avoid using too much of memory for copying data from library's
own aligned buffer to application's (unaligned) buffer, this step is done in fragment. The next
step checkin is to handle writing data in fragment.
For some reason, only Visual Studio DLLs complained about these.
Current code compiles for me under Visual Studio and generates no related
warnings on juniper.
Fixes for bugs 676, 228
676: both h5repack and h5diff use H5Dread. In the case of a "big"
dataset, use read/write by hyperslabs the same way h5dump uses. An
arbitrary value of 1GB was defined for "big", i.e, if the dataset is
greater than 1GB, then read/write by hyperslabs
228: use the file type in read/write by default. A new switch -n was
introduced if the user wants to use a native type, which was the
previous use by default.
Added a new test for h5repack that repacks a 1GB dataset
Tested: heping (serial, parallel), sol, copper
Skipped until fix is found.
Tested on heping with pgf90.
Note: Logic was wrong; as a result, the test was bypassed for all
compilers except those (like Intel) that understand !DEC compiler directive.
I confirmed that the test fails on heping with pgf90. The symptoms are the same:
1.6.5 h5dump can read multi files created by fortran test,
but built h5dump fails with internal error.
--This line, and those below, will be ignored--
M test/fortranlib_test.f90
through driver info functions in H5FD_direct_open, H5FD_direct_read, and H5FD_direct_write. The
external change is to add a new API function H5Pget_fapl_direct to query 3 control values, the
memory boundary, file system block size, and the maximal buffer size for copying data.
handle flush callbacks which can dirty other entries, and
resize and/or rename the target entry.
This feature is needed by the fractal heap code.
Also added associated test code.
H5Commit tested. Test failed on heping, but the
error appears to be a syntax error in an un-related
file.
Tests on copper & sol passed, along with tests on
phoenix.
More fixes to make the I/O & memory operations more efficient when loading
& flushing object header chunks.
Add in concept of a chunk having a "gap" at the end - unused space that is
not large enough to hold a full null message that describes it.
Clean up formatting a bit.
Latest version of object header format not enabled yet, still working on a
few bugs...
Tested on:
Linux/32 2.6 (chicago)
Linux/64 2.6 (chicago2)
Overhaul usage of object header chunks to reduce I/O operations and
memory allocations. The object header prefix is now stored in the first
object header chunk's "image" in memory.
Also, lots of formatting cleanups.
Taught h5debug tool about new object header format (which isn't enabled
just yet).
Tested on:
Linux/32 2.6 (chicago)
Linux/64 2.6 (chicago2)
Move object header creation past several internal possibilities for
errors, making the routine more resistant to errors encountered.
Also, various formatting/compiler warning cleanups.
Tested on:
Linux/32 2.6 (chicago)
Linux/64 2.6 (chicago2)
Add 'initval' parameter to "lookup3" checksum routine (and implicitly to
the metadata checksum routine), to allow chaining several checksums together
easily (which isn't used by these modules, but will be used in my next checkin)
Tested on:
Linux/32 2.6 (chicago)
Linux/64 2.6 (chicago2)
memory boundary, file block size, and maximal copy buffer size; second in H5FD_direct_write and
H5FD_direct_read, the library checks whether data buffer is aligned. If it is, then write and
read the data directly instead of making a copy buffer.
Daily tests failed for Absoft f95 compiler
Solution:
Failure was due to several typos in H5f90prpto.h file; fixed
I also removed redundant flags from the configration files.
Platforms tested: heping with f95, g95, pgf90; pommier with f95
removed the function H5LTcreate_compound_type from the source directory.
this function was not being used. when it was written, it was meant to be an auxiliary function to be used on the table api, but it never had an usage
commented the H5LTrepack function with the
#ifdef NOT_YET
macro
it is also not being used
Speculatively attempt to read in the entire first chunk in object header
with the object header prefix. If successful (which it is most of the time),
this reduces by 1 the # of I/Os required to read in the object header. Since
the object header typically was taking 2 I/Os, this should cut the number of
I/O operations when opening an object's header in half.
Tested on:
FreeBSD/32 4.11 (sleipnir) w/threadsafe
Linux/32 2.4 (heping) w/C++ & FORTRAN
Clean up some object header code in advance of more major changes in the
near future.
Fix small initialization error in attribute message name buffer copy.
Tweak down the default # of messages for new object headers.
Tested on:
FreeBSD/32 4.11 (sleipnir) w/threadsafe
Linux/32 2.4 (heping) w/FORTRAN & C++
Mac OS/32 10.4.8 (amazon)