Commit Graph

1258 Commits

Author SHA1 Message Date
John Mainzer
c100b0bf26 [svn-r11470] Purpose:
Repair synchronization bug in the metadata cache in PHDF5

Also repair numerous other bugs that surfaced in testing the
bug fix.


Description:

While operations modifying metadata must be collective, we allow
independant reads.  This allows metadata caches on different processes
to adjust to different sizes, and to place the entries on their dirty
lists in different orders.  Since only process 0 actually writes
metadata to disk (all other processes thought they did, but the writes
were discarded on the theory that they had to be collective), this made
it possible for another process to modify metadata, flush it, and then
read it back in in its original form (pre-modification) form.  The
possibilities for file corruption should be obvious.


Solution:

Make the policy that only process 0 can write to file explicit, and
visible to the metadata caches.  Thus only process 0 may flush dirty
entries -- all other caches must retain dirty entries until they are
informed by process 0 that the entries are clean.

Synchronization is handled by counting the bytes of dirty cache entries
created, and then synching up between the caches whenever the sum
exceeds an (eventually user specified) limit.  Dirty metadata creation
is consistent across all processes because all operations modifying
metadata must be collective.

This change uncovered may bugs which are repaired in this checkin.
It also required modification of H5HL and H5O to allocate file space
on insertion rather than on flush from cache.


Platforms tested:

H5committest, heping(parallel & serial)

Misc. update:
2005-09-27 00:20:11 -05:00
Pedro Vicente Nunes
d09ca66a26 [svn-r11448] Purpose:
new features

Description:

add support for compiling the library and testphdf5 in Windows


Solution:

Platforms tested:
Linux
AIX
Solaris
Windows VC6

Misc. update:
2005-09-21 08:41:09 -05:00
James Laird
3267458b64 [svn-r11446] Purpose:
Bug fix

Description:
Massaged the newer script and config/conclude.am to make SX6 happy.


Platforms tested:
SX6, sol, mir
2005-09-20 16:46:24 -05:00
Albert Cheng
465f9be6e3 [svn-r11441] Purpose:
Feature.

Description:
Added ALARM_ON, ALARM_OFF feature to terminate tests that run more than
the default time limit.  So far, the feature is applied in the standard test
frame.

Platforms tested:
heping PP.
2005-09-19 15:32:18 -05:00
Albert Cheng
c0e83899c3 [svn-r11431] Purpose:
New feature.

Description:
Added the time command to the make check target to report time usage
of the execute of each test and test scripts.  This gives us some idea
how long each test takes and some vague idea it is compute bound or
not.

powerpc-ibm-aix5.x:
Change $RUNPARALLEL default setting to allow it being invoked by the
time command.

Platforms tested:
h5committested.
2005-09-17 22:04:28 -05:00
Elena Pourmal
2540abc1c9 [svn-r11426] Purpose: VMS port / bug fix
Description:

On VMS dsets test failed screaming about corrupted stack.
Debugging didn't show any obvious problems. Careful examination
of compilation warning messages (something like "function is used as
data in dsets") made me to search for duplicated names.

It turned out that two variables H5Z_SET_LOCAL and H5Z_CAN_APPLY
were confused with H5Z_set_local and H5Z_can_apply functions from
H5Z.c file.


Solution:

Changed variable names to H5Z_SET_LOCAL_TEST and H5Z_CAN_APPLY_TEST.


Platforms tested: Alpha VMS, heping; minor change

Misc. update:
2005-09-17 17:37:48 -05:00
James Laird
ae2a313b5b [svn-r11421] Purpose:
Feature

Description:
Added H5_CFLAGS, etc. to 1.7 branch.
Now compilation flags can be put in H5_*FLAGS and they'll be used when
building hdf5 but not in h5cc.


Platforms tested:
mir, sleipnir, modi4

Misc. update:
2005-09-16 16:26:17 -05:00
James Laird
b656c90c8a [svn-r11420] Purpose:
Bug fix

Description:
Disabled C++ shared libraries for Sun Workshop compiler.

Solution:
This bug only seems to happen when using the -xarch=v9 flag to compile in
64-bit mode, but disabling shared libraries entirely for this compiler is
an easier fix (I don't know how to detect 64 bit mode from the command line).
The framework for disabling shared libraries for other C++ compilers is
in place.

Platforms tested:
sol, mir, sleipnir, modi4
2005-09-16 16:16:11 -05:00
James Laird
cc8f7d98bf [svn-r11418] Purpose:
Bug fix/feature

Description:
Disabled shared libraries for a number of Fortran compilers that don't
support them.
This allows other compilers to support shared Fortran libraries.

Solution:
Added a conditional, SHARED_FORTRAN_CONDITIONAL, which is true if
Fortran supports shared libraries.  It is set in configure.in.

Platforms tested:
mir, sleipnir, colonelk, heping
2005-09-15 16:30:06 -05:00
Raymond Lu
1143f47e2d [svn-r11415] Purpose: Internal design change.
Description: H5T_register() replaces any existing data conversion path
with a new path.

Solution: Added a parameter to H5T_register() and H5T_path_find() to
signal the library whether the new conversion path is from API function
H5Tregister() or from private function like H5T_init_interface().  If it
is from H5Tregister(), replace existing path.  If it's from H5T_init_interface()
and the library is trying to register default hard conversion functions,
don't replace existing path because the path is registered by the library.
For example, the library registered H5T_conv_int_float() and is trying to
register H5T_conv_long_float().  The size of long is equal to int.  There's
no need to replace the path H5T_conv_int_float().

Platforms tested: h5committest and fuss.
2005-09-14 16:54:19 -05:00
Raymond Lu
f7c075c736 [svn-r11414] Purpose: Rename a API function
Description:  The API function H5Tis_hard() which was recently checked
in has been renamed to H5Tcompiler_conv() to be more descriptive.  No
other changes.


Platforms tested: fuss - simple change.

Misc. update: config/lt_vers.am to update libtool version.
2005-09-14 14:10:37 -05:00
James Laird
33beeb7f55 [svn-r11411] Purpose:
Bug fix

Description:
Building with --disable-static seems to have been broken on several platforms.
Fixed this.
Configure will now disable shared libraries automatically when using pgf90
or when building on Cygwin.

Solution:
To avoid errors when using shared libraries with pgf90 (which I had not
realized were compiler-specific), I had manually set convenience libraries
to use the -static linking flag.  Apparently, this is not necessary, and
caused these libraries to be created as empty archives when --disable-static
was used.
Also, some libraries were including other libraries, which was not
necessary.
I also fixed code in configure.in to correctly detect whether shared
or static libraries are enabled, and moved code that disables shared libraries
to before libtool is created (rather than editing libtool after the fact).
Despite repeated warnings that only one shared library can be linked at a
time, I have yet to have shared libraries break the linking of tests on
any system.  We'll see if the Daily Tests turn up anything.

Platforms tested:
mir (fortran, C++), sleipnir (C++), modi4 (fortran, C++, parallel),
sol (fortran, C++), cygwin
2005-09-13 17:30:33 -05:00
Elena Pourmal
8d2783a2e0 [svn-r11403] Purpose: Maintenance
Description:  Brought back changes from SX-6.

Solution: Tests will not compile. Fixed.

Platforms tested: SX-6, heping and mir with new g95

Misc. update:
2005-09-12 22:20:41 -05:00
Raymond Lu
93e661f16b [svn-r11395] Purpose: Bug fix
Description: Quincey added the condition branch (else if (*((ST*)S) != (ST)((DT)(*((ST*)S)))))
in the definition of the macro H5T_CONV_Fx_CORE.  It handles a special situation
when the source is "float" and assigned the value of "INT_MAX".  Compilers do roundup
making this value "INT_MAX+1".  This branch is to check that situation and return
exception for some compilers, mainly GCC.

The branch if (*((ST*)S) > (DT)(D_MAX) || (S_PREC < D_PREC && *((ST*)S) ==
(DT)(D_MAX))) is for some compilers like Sun, HP, IBM, and SGI where under
the same situation the "int" doesn't overflow.

A test was added to dt_arith.c to check 2 conversions, from float to int where the
float is INT_MAX, and from double to signed char where the double is SCHAR_MAX.


Platforms tested: h5committest and fuss.
2005-09-12 14:39:16 -05:00
Quincey Koziol
5ad2673fde [svn-r11386] Purpose:
Code cleanup/reorganization

Description:
    Merge back some more changes extracted from the "compact group" set.
This bunch cleans up and prepares the H5G_* routines for eventual import of
new features.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
    Mac OS X.4
2005-09-12 09:29:54 -05:00
Quincey Koziol
5ffde305cd [svn-r11384] Purpose:
Code cleanup

Description:
    Merge back changes from "compact group" work that improve the
infrastructure of the library and may impact others.  In this round of
merging, that includes:
    - Move datatype allocation into single internal routine, instead of
        duplicated code that was spread out in a dozen or so places.
    - Clean up guts of object header routines (H5O_*) to allow for some of
        the fancieroperations that need to be performed on groups, along with
        some general improvements.
    - Added a new error code
    - Some minor cleanups in other code....

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
    Mac OS X
2005-09-12 01:02:55 -05:00
Fang Guo
629c693d82 [svn-r11365] Purpose:
Add more assertion error check
Description:

Solution:

Platforms tested:
heping
Misc. update:
2005-09-07 16:44:16 -05:00
Leon Arber
3280e08b9b [svn-r11364] Purpose:
Bug fix

Description:
Incorrectly terminated the received string in getenv_all

Solution:
Tasks would incorrectly terminat the environment string they received from the
root task in getenv_all.

They did the equivalent of:

env[strlen(str) + 1] = '\0'.

This resulted in a single "garbage" character inserted
at the end of the string.  This wasn't noticed until now because it seems that on most
platforms this garbage character was a 0 anyway.

This has been corrected to;

env[strlen(str)] = '\0'.


Platforms tested:
Red Storm (where the bug was discovered)
heping (pp)

Misc. update:
2005-09-07 16:19:06 -05:00
Raymond Lu
7ef46b524b [svn-r11355] Purpose: A new API function and its test.
Description:  Put in a new API funciton, H5Tis_hard.  It checks whether
the conversion function from a native type to another native type is a
compiler (hard) conversion.  Also checked a test in test/dt_arith.c.


Platforms tested: h5committest and fuss.
2005-09-06 13:39:46 -05:00
Quincey Koziol
01a3d9d780 [svn-r11345] Purpose:
Bug fix & code cleanup

Description:
    Address most of datatype conversion exception handling bug that Ed
Hartnett reported.  (He's reported a different problem now, but we're closer
at least).

    Also, condense exception handling #ifdef's into one location instead of
spread out in so many places.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-09-03 12:11:00 -05:00
Quincey Koziol
90103afad6 [svn-r11337] Purpose:
Code cleanup

Description:
    Changed some scale+offset filter symbols from H5_SO_... -> H5Z_SO_...
to indicate that they are in the H5Z package.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-09-01 17:46:16 -05:00
MuQun Yang
6265941e76 [svn-r11324] Purpose:
update dsets.c for scale-offset filter.

Description:
H5Psetscaleoffset has changed parameters.
Solution:


Platforms tested:
sol 2.7, Linux 2.4, AIX 6.4(32-bit and 64-bit)

Misc. update:
2005-08-31 17:04:55 -05:00
Albert Cheng
6d3715e537 [svn-r11323] Purpose:
tidy up.

Description:
MPE option created *.clog file whenever it is executed in MPI.
The cleanup of *.clog files were done in individual Makefile.in.
Often, it is forgotten.

Solution:
Moved the cleaning of *.clog files to CHECK_CLEANFILES in commence.am
so that it is applied whenever check-clean is called.

Platforms tested:
heping pp using MPE.
2005-08-31 15:03:52 -05:00
James Laird
66af6dce17 [svn-r11319] Purpose:
Bug fixes

Description:
This checkin fixes an occasional error on kelgia on sol during distclean.
It also causes test scripts to depend properly on the programs they're
supposed to be testing.

Solution:
The kelgia bug was due to some files being cleaned by automake and manually.
Removed the manual cleaning in src/Makefile.am.
Test script dependencies now need to be specified manually, since the
makefile can't guess what they test from their name.  Currently all test
scripts in a given directory have a single list of dependencies--this was
easy and seems to be sufficient.
These dependencies are listed in the SCRIPT_DEPEND variable in the Makefile.am.

Platforms tested:
heping, mir, modi4, sol

Misc. update:
2005-08-30 18:42:39 -05:00
Raymond Lu
bd4312d049 [svn-r11311] Purpose: New features.
Description:  Added 2 new configure options, --enable-exception and --enable-accuracy.

--enable-exception lets the library check whether user's exception handling
functions are present during compiler data conversions and use them if they are.
When it's disabled, this step is skipped to improve conversion speed.  This
step isn't implemented yet for soft conversions because there would be little
gain in speed.

--enable-accuracy guarantees data accuracy during data conversions.  It means
the library will choose compiler conversions only if the accurate data is
secured.  Otherwise, the library will go for the library's own conversions.  If
this option is disabled, the library uses compiler conversions in favor of
their speed as long as they work even if data can be incorrect.


Platforms tested: h5committest and fuss.  Some systems may fail after this
checkin.
2005-08-29 10:21:58 -05:00
Quincey Koziol
e1747e456c [svn-r11307] Purpose:
Code cleanup

Description:
    Clean up internals of group creation & iteration code.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Mac OS X (nile)
    Too minor to require h5committest
2005-08-29 00:36:16 -05:00
Quincey Koziol
fefbe61aca [svn-r11304] Purpose:
Code cleanup (sorta)

Description:
    Adjust H5G_stat_t to prepare for eventual "external link" information.
This also puts the information for regular objects and soft links into more
obviously separate places.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
2005-08-27 08:34:28 -05:00
Albert Cheng
538d37a1bc [svn-r11303] Purpose:
minor tidy up.

Description:
Changed both test programs and test scripts to use the same suffixes
(.chkexe and .chklog).  Changed from .log to .chklog to avoid running
into potential conflicts by other "things" (e.g., config.log).

Tested:
Heping.
2005-08-26 17:24:27 -05:00
Quincey Koziol
a8b272ac25 [svn-r11300] Purpose:
Code cleanup

Description:
    Prevent memory leak when too many links are traversed.  Also add test to
traverse too many links.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
2005-08-25 16:49:31 -05:00
Fang Guo
5a1bb020a3 [svn-r11299] Purpose:
Improvement for Windows
Description:
thread number can not be printed out on windows. Add a special
macro for WIN32 to print out some helpful  messages
Solution:

Platforms tested:
Heping and MSVS 6.0 on Windows XP
Misc. update:
2005-08-25 15:49:21 -05:00
Quincey Koziol
ab6656c52c [svn-r11295] Purpose:
Bug fix

Description:
    Fix "strong" file closing to handle a dangling dataset which uses a
dangling named datatype.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor too require h5committest
2005-08-25 12:16:02 -05:00
Quincey Koziol
b7d43b0cf0 [svn-r11283] Purpose:
Code cleanup

Description:
    Clean up code somewhat:
        - Move from HDmemset() -> H5G_ent_reset() to clear out group entry info
        - Simplify H5G_unlink() call
        - Use portability macros instead of direct system calls in more places
        - Improve readbility by neatening whitespace, etc.
        - Move some macros into source code module instead of header files

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
2005-08-20 14:28:40 -05:00
Quincey Koziol
96b3c145b7 [svn-r11282] Purpose:
New debugging feature

Description:
    Add some code to track where memory from the internal free list allocator
is allocated within the library.  It's not quite ready for "prime time" yet,
but it's close enough to be useful.

    This is disabled by default and requires the H5FL_TRACK macro in
src/H5FLprivate.h to be uncommented to activate during debugging.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
    Too minor to require full h5committest
2005-08-20 13:09:28 -05:00
Quincey Koziol
a0530d368b [svn-r11277] Purpose:
Bug fix

Description:
    Fix core dump when checking whether to invalidate the name of an object
when unlinking an object in a group opened through an object reference.

Solution:
    Check if names of various objects are valid before comparing them, etc.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-08-20 11:32:55 -05:00
Quincey Koziol
eec442a8f6 [svn-r11276] Purpose:
Code cleanup/bug fix

Description:
    Add missing files to manifest

    Remove C++ style single-line comment from recent checkin and also re-indent
in a few places.

Platforms tested:
    FreeBSD 4.11 (sleipnir) w/thread-safe
    Not configured w/h5committest
2005-08-20 10:45:13 -05:00
Fang Guo
1cc00ac662 [svn-r11269] Purpose:
Improvement
Description:
ttsafe cancel failed on Windows because pthread mutex and cond are not initialized
Add some assertion statements to locate the errors when they happen
Solution:

Initialize pthread mutex and cond to the default attributes.

Platforms tested:
MSVS 6.0 on windows XP and heping(with pthread)
Misc. update:
2005-08-19 15:06:26 -05:00
Fang Guo
6b181e28a8 [svn-r11268] Purpose:
Improvement
Description:
Add some assertion statements to locate the errors when they happen
Solution:

Platforms tested:
MSVS 6.0 on windows and heping(with pthread)
Misc. update:
2005-08-19 15:01:41 -05:00
Fang Guo
9498eb1770 [svn-r11267] Purpose:
Improvement
Description:
Add some assertion statements to locate the error when errors happen
Solution:

Platforms tested:
MSVS 6.0 on windows XP and heping(enable threadsafe with pthread)
Misc. update:
2005-08-19 15:00:17 -05:00
Quincey Koziol
94d21eed9f [svn-r11248] Purpose:
Code cleanup

Description:
    Fix minor difference in datatype conversion exception callback routine.

Platforms tested:
    FreeBSD 4.11 (sleipnir) w/C++
2005-08-15 09:24:16 -05:00
Quincey Koziol
6b45f5172c [svn-r11245] Purpose:
Code cleanup

Description:
    Trim trailing whitespace, which is making 'diff'ing the two branches
difficult.

Solution:
    Ran this script in each directory:

foreach f (*.[ch] *.cpp)
    sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
end


Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-08-13 15:53:35 -05:00
Quincey Koziol
6562465a2c [svn-r11243] Purpose:
Code cleanup

Description:
    Collapse the various tests on groups opened by dereferencing into one test.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-08-13 14:27:39 -05:00
Quincey Koziol
0e1b41d0fd [svn-r11229] Purpose:
Big fix

Description:
    A group opened by dereferencing a object reference would not work for
H5Giterate(), due to the local heap & B-tree information not being cached.

Solution:
    Get the local heap & B-tree info & point to that structure instead of
the group entry for the group.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-08-10 15:28:32 -05:00
Quincey Koziol
502b4c206d [svn-r11215] Purpose:
Bug fix & code cleanup

Description:
    Fix another bug in the file mounting code and refactor the unmount
code that it is simpler.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
    Too minor to require h5committest
2005-08-08 13:41:35 -05:00
Albert Cheng
fbb2dd8545 [svn-r11213] Purpose:
Bug fix and improvement.


Description:
The test output were not displayed for parallel tests.
The serial tests output were always displayed whether the test was
actually ran this time or not.


Solution:
Moved the display of test output inside the target where the actual
tests are run.


Platforms tested:
Tested in heping using pp and fortran.
2005-08-08 12:30:23 -05:00
Albert Cheng
ea15f348a1 [svn-r11208] Purpose:
Bug fix and code minor cleanup.

Description:
The attempt to redirect stderr together to the log files were
done in the wrong order such that stderr output goes to where
stdout WAS.  Fixed that.

Code minor cleanup--use shell variables to hold the name of the
log file and the test instead of generating them repeatedly.  This
makes easier code reading, less crowded and avoid typos.

Only conclude.in is changed.  The Makefile.in changes are all
derived from automake.

Platforms tested:
h5committested.
2005-08-08 02:32:27 -05:00
Albert Cheng
4d65048d2d [svn-r11193] Purpose:
fixed typo for uint_fast16_t verification.

Tested in Red storm.
2005-08-03 15:35:54 -05:00
James Laird
e75a185eca [svn-r11185] Purpose:
Makefile feature

Description:
'make check-clean' now cleans *.h5 files created by tests as well as
.log and .chkexe files.

Solution:
check-clean is now a separate target in its own right, which cleans less
than mostlyclean (check-clean < mostlyclean < clean < distclean).

Platforms tested:
mir, heping, modi4 (serial and parallel)
2005-08-02 12:59:03 -05:00
James Laird
c63ef2cba2 [svn-r11179] Purpose:
Feature: check-clean target

Description:
'make check-clean' cleans up output files from tests.

Solution:
Tests create foo.chkexe and foo.log files.  Scripts create foo.chksh and
foo.logsh files.  'make check-clean' will clean these files up so that
the tests can be re-run.
Also suppressed some not-very-useful output of Makefiles when it would
echo commands.

Platforms tested:
mir, sleipnir, modi4

Misc. update:
2005-08-01 17:22:55 -05:00
Quincey Koziol
0c9c34fab6 [svn-r11176] Purpose:
Bug fix

Description:
    Correct problems when querying information about a group that was opened
by dereferencing an object reference.

Solution:
    Read in symbol table information instead of rely on it being cached.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-07-30 13:53:01 -05:00
Quincey Koziol
c92ac94107 [svn-r11145] Purpose:
Bug fix

Description:
    If a named datatype is copied and the copy is used to create a dataset,
the dataset would inadvertantly refer to the original named datatype instead
of a local (possibly modified) copy of the named datatype.

Solution:
    Fixed datatype copying routine.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-07-23 14:58:13 -05:00