| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Checkpoint checkin of FP bug fixes. FP is still quite
buggy, but I must go deal with other matters.
Description:
Fixed two major bugs:
1) H5FPserver.c was clobbering meta data in its care.
2) H5FPserver.c was allocating the same space multiple
times, causing both data and meta data corruption.
Also made minor fixes, added debugging code, and familiarized
myself with the FP code.
All development work with FP enabled was done on Eirene.
On this platform, FP now passes its test reliably with
up to 9 processes. At 10 processes it seg faults every
time. I haven't looked into this issue.
There are also several known locking bugs which have to
be fixed. However, they are of sufficiently low probability
that I didn't bother with them on this pass.
FP has not been tested with deletions -- this should be
done.
Also, need to test FP chunked I/O.
Solution:
1) Modified cache in H5FPserver.c to merge changes correctly.
Found and fixed a bug in H5TB.c in passing.
2) Multiple space allocation was caused by a race condition
with set eoa requests.
Most of these eoa requests appeared to be superfluous, so
I deleted them.
Those issued during the superblock read seemed necessary,
so I inserted a barrier at the end of the superblock read,
to prevent races with allocations.
Platforms tested:
h5committested
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix/code cleanup
Description:
Copy Robb's feature in SSlib that checks that the name of the function
used in the FUNC_ENTER macro is actually the name of function.
Fixed a bunch of typos & copy-n-pasto's for functions with incorrect names.
Platforms tested:
FreeBSD 4.9 (sleipnir) w/parallel
too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Add destructor to match constructor fr VFLs when they are shut down by the
library.
Solution:
Added H5FD_*_term() routines to "undo" changes made in H5FD_*_init()
routines.
Platforms tested:
IBM p690 (copper)
too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix/optimization
Description:
Address slowdown in MPI-I/O file metadata operations that was introduced
mid-stream. We now _require_ a POSIX compliant parallel file system for the
MPI-I/O file driver (as well as for the MPI-POSIX file driver).
Also optimized file open operation when the file is being created by
reducing the number of collective & syncronizing calls.
Additionally, refactor the MPI routines into a common place, eliminating
duplicated code.
Platforms tested:
FreeBSD 4.9 (sleipnir) w/parallel
h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
When two property lists are compared, the H5Pequal routine was just
comparing the raw information for the property values. This causes problems
when the raw information contains pointers to other information.
Solution:
Allow a 'compare' callback to be registered for properties, so that a user
application get perform the comparison itself, allowing for "deep" compares of
the property value.
This was exported to the H5Pregister & H5Pinsert routines in the development
branch, but not the release branch.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Clean up compiler warnings, especially the 'FUNC' variable not used which
comes out in production mode.
Solution:
Had to add a new FUNC_ENTER_NOAPI_NOINIT_NOFUNC macro for those non-API
functions which don't need the 'FUNC' variable defined. (This will be _so_
much easier when C99 is standard on all our supposed platforms, since it has a
__FUNC__ macro... )
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor for h5committest (although there were lots of files changed, the
change was minor in each one)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
Our previous "optimization" of metadata writing which only wrote metadata
from one process was abusing MPI-I/O and after some consultation with Rob Ross
and Rajeev Thakur, Albert & I have come up with a solution...
Solution:
Instead of only writing from one process, issue a collective write
operation with all processes, for metadata writes.
Platforms tested:
FreeBSD 4.9 (sleipnir)
h5committest
|
|
|
|
|
|
|
|
|
|
|
|
| |
Minor code cleanup
Description:
Fixed up comments, made the H5I_get_file_id() routine static, removed
H5Gprivate from including itself...
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
|
|
|
|
|
|
|
|
| |
Description: more feature to H5Iget_file_id(). If file ID is closed, it can
still return an ID given object ID.
Platforms tested: h5committest
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup & add a feature
Description:
Added support for querying the file ID of named datatypes to new
H5Iget_file_id function.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Refactored handlier of VFL drivers in file access and data transfer property
lists in order to simplify and unify the code dealing with them.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
|
|
|
|
|
|
|
|
| |
Update dependencies and tracing information
Platforms tested:
Linux 2.4 (verbena) w/FORTRAN
too minor for 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
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup & optimization
Description:
Split superblock initialization and space allocation out from writing
the superblock information to disk, which makes the code much cleaner and
easier to understand and also allows FPHDF5 to have a fully completed superblock
to Bcast to other (non-caption) processes.
Platforms tested:
FreeBSD 4.9 (sleipnir)
too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update
Description:
The F_open and F_flush functions had a lot of cruft in them. The
F_flush was being used as a way to allocate the superblock. The
F_open had a bunch of code in there to read and serialize the
superblock.
Solution:
Moved these out into their own functions.
Platforms tested:
Modi4 (parallel, Fortran)
Copper (parallel, Fortran)
Verbena (Fortran, C++)
Sol (Fortran)
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
More linting...
Platforms tested:
FreeBSD 4.8 (sleipnir)
too minor to need h5committest
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Various cleanups resulting from running lint tool over H5F.c source module
Platforms tested:
FreeBSD 4.8 (sleipnir)
too minor to require h5committest
|
|
|
|
|
|
|
|
| |
Added some comments, etc.
Platforms tested:
FreeBSD 4.8 (sleipnir)
too trivial for h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update
Description:
Added an extra flag to the clear functions that triggers a "destroy"
of the object being cleared if necessary. This is a fix for the
FPHDF5 stuff which had an object sticking around after it was
cleared. (In FPHDF5, some processes are in charge of destroying the
object, but all processes might actually allocate the object.)
Platforms tested:
AIX (Copper: Fortran & C++)
Linux (Verbena: Fortran & C++)
IRIX (Modi4: Parallel & Fortran)
(Sol is down)
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
Description:
Chase error API changes
Removed H5F_addr_pack() routine, which is no longer necessary.
Platforms tested:
h5committested
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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:
Break some of the "debugging" routines into their own module, so they
aren't pulled into every executable, which certainly isn't going to use them.
Platforms tested:
h5committested
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
Boot block checksum was being used instead of file driver info checksum
in one calculation.
Also, the offset of the file driver info was hard-coded to the end of the
superblock, instead of using the file driver offset variable.
Solution:
Changed to use file driver checksum and file driver offset variable.
Platforms tested:
FreeBSD 4.8 (sleipnir)
too small for h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
update for release
Description:
Set the version information to 1.6.0-pre1 to get ready for
v1.6 release.
(Not sure why H5F.c got changed--probably done gmake automatically
during testing.)
Platforms tested:
h5committested.
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix & code cleanup
Description:
The H5F_get_objects_cb was returning SUCCEED (i.e. 0) to indicate that
the ID iterator should exit early, but the ID iterator needs a non-zero return
from a callback to exit early.
Also, track change to ID iterator "operator data" to be non-const
Solution:
Changed H5F_get_objects_cb() to return "TRUE" instead, to indicate an
early exit for the ID iterator.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix, refactored code
Description:
Fixed closing objects for "strong" file degree, which previously would
sometime attempt to close the same object twice (when a named datatype and
a dataset which used it were both left open before the file was closed).
Stopped datatype iteration from querying for the group entry of non-named
datatypes.
Added attributes to the list of objects that can be queried by
H5Fget_obj_count and H5Fget_obj_ids, since they can hold open a file also.
Took a suggestion from Robb to return the number of open objects
in the return values of H5Fget_obj_count and H5Fget_obj_ids.
Also, added a "max_objs" parameter to the H5Fget_obj_ids function, so that
it can work well with staticly allocated arrays.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Limit the scope on more function prototypes/macros/typedefs.
Platforms tested:
FreeBSD 4.8 (sleipnir)
h5committest not necessary.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup.
Description:
Move many package or internal function prototypes and macro definitions
into tighter scope according to their current use.
Added more comments where appropriate.
Eliminate ancient, unused functions.
Added a couple "accessor" functions to get parts of data structures which
were moved out of scope.
Platforms tested:
h5committested
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commenting
Description:
Added comments to the H5Fget_access_plist function to remind people
that if they are going to be overwriting a value in the plist which
was originally opened and inserted into the plist, then it should be
closed before overwriting that value.
Platforms tested:
Modi4 (Only comment change, so no h5committest needed).
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bug fix
Description:
in the close strong case in H5F_close there was a do..while loop
that executed when nfiles==0, calling malloc(0)
this was causing a failure in the close call in Code Warrior, that returns 0
in the call pt=malloc(0)
Solution:
replaced with a while loop (checks the condition before executing)
Platforms tested:
code warrior, linux
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix
Description:
A resource leak happened if the H5Fget_access_plist() function was
called. What was happening: the driver ID and info parts of the
property list copied in H5Fget_access_plist were being overwritten,
but those properties were copied initially, so we lost information.
Solution:
Before copying over those values, call the H5F_acs_close() function
to close those values.
Platforms tested:
Modi4 (Parallel & Fortran)
Arabica (Fortran)
Verbena (Fortran & C++)
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix
Description:
When calling "H5F_get_access_plist" after setting the FAPL to a multi
driver, and then trying to get the multi driver back, it resulted in
returing a "NULL" value instead of the driver.
Solution:
The stuff at the location pointed to by the driver was being stored
into the property list and not the pointer to the driver itself.
Changed the "H5P_set" code so that it stores the pointer instead of
the driver...(Added an "&" in from of the "driver_info" variable).
Platforms tested:
Arabica (Fortran)
Burrwhite (Fortran & C++)
Modi4 (Fortran & Parallel)
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New code.
Description:
Added internal routine to clear the sieve buffer if it overlaps a address-
length range in the file. This is used currently to clear the sieve buffer
when an object is deleted from the file.
Platforms tested:
FreeBSD 4.8 (sleipnir) w/C++
Linux 2.4 (burrwhite) w/FORTRAN
Solaris 2.7 (arabica) w/FORTRAN
IRIX64 6.5 (modi4) w/parallel & FORTRAN
(h5committest not run due to my ongoing difficulties with C++ on burrwhite).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update & Bug Fix
Description:
The "free" protocol was missing. Added that to the server side.
When doing a "create" of a file (with no other data structures
created), the freespace in the file wasn't being reclaimed.
Solution:
After adding the free protocol, we put the burden of running through
the FD_free function on the SAP instead of each client.
Platforms tested:
Linux
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix & Update
Description:
FPHDF5 was creating files which didn't have the EOA field in the
superblock set correctly. It turns out that the SAP was keeping this
information to itself instead of giving it to the client processes.
Naughty SAP!
Solution:
Have the SAP send this information back to the clients so that they
can update the superblock as necessary. This now creates a file (with
just the root group) that looks correct! Only problem is that there's
extra file space being allocated. Also, at program termination,
there's an infinite loop...
Platforms tested:
H5committests (run by hand on burrwhite, arabica, and modi4)
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix/code cleanup/new feature
Description:
Fix h5debug to work correctly again, with all the changes over the past
few months.
Improved and cleaned up debugging output available in h5debug.
Platforms tested:
FreeBSD 4.7 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix and Update
Description:
From Quincey's comments on the code I checked in last night:
- In H5F_close call, the "private" processes should call the
H5F_flush with the "CLEAR_ONLY" flag.
- There's no need for a special case for FPHDF5 in the
FD_real_alloc function since FPHDF5 doesn't define an alloc
function.
- The return type of H5Pset_fapl_fphdf5 should be herr_t instead
of hid_t. I don't know how it got that way in the first place.
- The variable names for MPI types and the structure typedefs
should be switched: H5FP_request/H5FP_request_t to
H5FP_request_t/H5FP_request and so on.
- In the H5FP.c module, I was commiting the H5FP_request MPI
datatype but using the wrong offset field...
Platforms tested:
Linux...will test on others, but these are mostly FPHDF5 changes.
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update
Description:
Have the FPHDF5 module initialized on startup. Have only the captain
process perform certain functions (like flushing during an F_close
call or allocating the superblock).
H5Fistore needed a few checks to see if it was working with an FPHDF5
driver. Done similarly to how MPI and MPIPOSIX drivers are checked..
Platforms tested:
Linux, Modi4, Sol
Misc. update:
|