Commit Graph

26 Commits

Author SHA1 Message Date
Quincey Koziol
a1708eb023 [svn-r11712] Purpose:
New feature

Description:
    Check in baseline for compact group revisions, which radically revises the
source code for managing groups and object headers.

WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!
WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!

    This initiates the "unstable" phase of the 1.7.x branch, leading up
to the 1.8.0 release.  Please test this code, but do _NOT_ keep files created
with it - the format will change again before the release and you will not
be able to read your old files!!!

WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!
WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!  WARNING!!!!


Solution:
    There's too many changes to really describe them all, but some of them
include:
    - Stop abusing the H5G_entry_t structure and split it into two separate
        structures for non-symbol table node use within the library: H5O_loc_t
        for object locations in a file and H5G_name_t to store the path to
        an opened object.  H5G_entry_t is now only used for storing symbol
        table entries on disk.

    - Retire H5G_namei() in favor of a more general mechanism for traversing
        group paths and issuing callbacks on objects located.  This gets us out
        of the business of hacking H5G_namei() for new features, generally.

    - Revised H5O* routines to take a H5O_loc_t instead of H5G_entry_t

    - Lots more...

Platforms tested:
    h5committested and maybe another dozen configurations.... :-)
2005-11-14 21:55:39 -05:00
Albert Cheng
7bbea13711 [svn-r11259] Purpose:
Bug fix

Description:
ph5diff had been hanging in Tflops.  Found out that vsnprintf ph5diff
uses was a local coded that did not limit printing according to the size
argument.  That resulted in buffer overflow and other problems.

Solution:
Added some sort of size checking in the home-grown vsnprintf and
had ph5diff checked for error return of vsnprintf.  Leon also
revamped the ph5diff manager's way of handling communications with
the workers.  That eliminated all but the last case of hanging.

Platforms tested:
Tflops.

Misc. update:
2005-08-17 14:21:36 -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
34bd25f361 [svn-r11144] Purpose:
New port

Description:
    Elena asked me to check in her NEC SX-6 work, so here it is! :-)

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    NEC SX-6 (by Elena)
2005-07-22 20:55:12 -05:00
Leon Arber
ac2e0d548e [svn-r10996] Purpose:
Bug fix for parallel case for new "Some objects were not comparable" patch to h5diff.

Description:
The parallel h5diff wouldn't print out "Some objects were not comparable" because the worker
tasks were not communicating the not_cmp flag of the diff_opt_t struct back to the manager, who ultimately
prints everything.

Also, some miscellaneous fixes for error printing.  Some errors were printed out with printf instead of fprintf(stderr,...).
In parallel environments, this can result in output getting lost.

Solution:
Had the worker tasks pass along the not_cmp flag to the manager when they sent along
the number of differences they found.



Platforms tested:
heping (pp), sol (pp)

Misc. update:
2005-06-28 14:20:56 -05:00
Pedro Vicente Nunes
4a5f83b8f0 [svn-r10994] Purpose:
bug fix

Description:
when 2 objects were not comparable, the final print information for the non verbose mode printed "0 differences found"


Solution:

replaced instead with a Summary message that says
"Some objects were not comparable"


Platforms tested:
linux
solaris


Misc. update:
2005-06-28 11:25:42 -05:00
Pedro Vicente Nunes
9acff10584 [svn-r10915] Purpose: work around a compiler bug
Description:

while compiling in mir with pgcc -O2 a condition

if (name ) {
  do_something(name);
  }

 is executed when name is NULL

Solution:
avoid the error by checking the NULL pointer inside do_something(name);


Platforms tested:
linux (mir with pgcc 6.0)


Misc. update:
2005-06-13 15:06:47 -05:00
Leon Arber
b3c8b2f846 [svn-r10659] Purpose:
Optimization

Description:
removed an unncessary memset call.

Solution:

Platforms tested:
heping (pp), sol (pp)

Misc. update:
2005-04-25 14:15:22 -05:00
Albert Cheng
9a80e52533 [svn-r10250] Purpose:
Replaced tmpfile() call with system macro HDtmpfile so that it is
easier to customize for systems.

Platforms tested:
in heping.

Misc. update:
2005-03-21 17:39:58 -05:00
Leon Arber
161914eda1 [svn-r10207] Purpose:
Bug fix

Description:
Typo in #ifdef to check for snprintf functionality.

Solution:
That should have been H5_VSNPRINTF_WORKS.

Platforms tested:
heping, modi4

Misc. update:
2005-03-13 19:22:35 -05:00
Leon Arber
82b3a0ca4a [svn-r10206]
Purpose:
Bug fix.

Description:
ph5diff fails on modi4 due to the way snprintf works on IRIX.

Solution:
The C99 standard says that, if there isn't enough room in the string,
 snprintf should return the number of characters that
would have been written to the output string if there were enough room.

The snprintf on modi4 would return the number of characters that is was able to write
succesfully to the string if space ran out. The ph5diff logic that checks if
the output buffer was full did not handle this sort of return value correctly.

Used  VSNPRINTF_WORKS from configure test to check how snprintf works and do
the logic accordingly.

Platforms tested:
modi4

Misc. update:
2005-03-13 18:38:11 -05:00
Leon Arber
15e0a2331e [svn-r10170] Purpose:
Bug Fixes

Description:
Fixes for several bugs, including dumping of excess output to a temporary file, fix for printing
hsize_t datatype, and the long awaited fix for intermixed output.

Solution:
Fix 1:  Overflow file
Previously, any output that a worker task made was buffered locally in memory, up to a point.  Any
output beyond the size of the buffer (used to be 10k) was discarded.  Now, the memory buffer size has been
changed to 1k and any output beyond this amount is sent a temporary file.  This way, no output is lost
and memory usage is kept under control.  The temporary file is deleted as soon as a worker task finishes
sending its contents to the manager.

Fix 2:  hsize_t printing
Printing of the hsize_t datatype used to be handled by %Hu passed to HDfprintf.  However, there is no corresponding HDvsnprintf that
is able to print hsize_t types.  These are now printed with the aid of H5_PRINTF_LL_WIDTH.

Fix 3:  Intermixed output fix
Intermixed output would occur on some machines (although I haven't seen it happen for a while) due to the unpredictability of the underlying network
and the speed at which various message would travel.  This has been fixed by having all output send to the manager
for printing.  The worker tasks no longer print the output themselves upon receipt of a token, but instead
send that data to the manager.



Platforms tested:
heping, eirene, tg-login (the only place that seems to still experience intermixed output every now and then)

Misc. update:
2005-03-09 13:38:36 -05:00
Leon Arber
c7f2d5c41e [svn-r9969] Purpose:
Correction to previous print_manager_output bugfix

Description:
Although the previous bugfix did fix all the errors, it was not the correct way
to fix the problem.  Since the manager will only buffer output when run in
parallel mode, in serial mode this function should not even be called.

Solution:
Wrapped print_manager_output in #define's to prevent it from being included in
serial builds.


Platforms tested:
heping (serial + parallel)

Misc. update:
2005-02-09 13:19:54 -05:00
Leon Arber
2183c5971a [svn-r9956] Purpose:
Fixed numerous ph5diff bugs.

Description:
Fixed manager output printing
Fixed out of order output printing
Fixed test script execution problem
Temporary fix for large amounts of output overflowing buffer.

Solution:
The manager task buffers its output.  However, since the manager task
never gets a print token, this output was lost.  Solution: new function called
print_manager_output that prints buffered output is called in places where the
manager buffers its output.

printf was apparently buffering output.  This means that a task would sometimes
print even after it had given up its print token.  Added fflush() call after
printf() calls, which seems to have fixed the problem.

calling rsh multiple times in succession seems to overwhelm something in Linux,
as it begins to refuse new connections until the old ones reset.  Since each
call to mpirun in the test script starts up 4 rsh sessions, the test script
eventually is unable to run any further tests.  Solution: Added a short delay in the
testscript between successive calls to mpirun to allow old connections to reset.

The 10k output buffer was of insufficient size to hold the large amounts of
output generated by some of the tests.  Since code to buffer to a file has not
been implemented yet, a temporary fix was to increase the size of the output
buffer to 50k.

Platforms tested:
heping

Misc. update:
2005-02-08 00:42:49 -05:00
Leon Arber
8af1385939 [svn-r9925] Purpose:
Bug Fix

Description:
Permanent fix for the incompatibilities between h5diff and h5repack.

Solution:
h5diff now contains the code to run both parallel and serial diffs.
Depending on how the binary is called, it will run either the serial or
the parallel versions respectively.


Platforms tested:
heping(serial + parallel), copper.


Misc. update:
2005-02-02 18:01:42 -05:00
Albert Cheng
1db4cc2596 [svn-r9905] Purpose:
fix bugs.

Description:
The three variables, g_nTasks, outBuff, and outBuffOffset, were
declared in ph5diff.h.  That means they are declared in various
*.c files that include it, thus having the appearance of multiple
defined.  Most C compilers are forgiving of this error but
the g++ rejects this practice.

Solution:
Make it only an extern declaration in ph5diff.h but really
defined them in h5diff_util.c

Platforms tested:
sleipnir using g++ since this only failed in Daily test.
Also testes in heping, serial and parallel modes.
2005-01-31 23:13:42 -05:00
Pedro Vicente Nunes
792e19e6b8 [svn-r9880] Purpose: bug fix
Description:
the print_paralell h5diff function had a call to  vsnprintf.
this causes a linking error on Windows

Solution:
replaced with  HDvsnprintf

Platforms tested:
windows (vs6)
linux

Misc. update:
2005-01-28 13:38:54 -05:00
Leon Arber
839f1092da [svn-r9877] Purpose:
Bug fix: Temporary fix for h5repack failures in all parallel builds.

Description:
The parallel additions to h5diff interfered with h5repack.

Solution:
Added a second set of "parallel" functions to h5diff.c.  h5repack uses the serial versions, whereas h5diff will use the parallel versions.

Also, h5diff will now be smart about when to enter parallel mode.  If is run with mpirun with more than 1 task, it will enter parallel mode.  Otherwise, it will stay in serial mode as before.

Platforms tested:
heping (serial and parallel)

Misc. update:
2005-01-27 18:21:05 -05:00
Albert Cheng
42754e6246 [svn-r9872] Purpose:
New feature.

Description:
Added new tool ph5diff. (Code done by Leon Arber.)
Code is changed but test is not working yet. For now,
it skipped all tests.

Platforms tested:
Tested in heping, serial and parallel modes.
2005-01-26 18:03:29 -05:00
Pedro Vicente Nunes
4cb6c01d7f [svn-r8904] Purpose:
h5diff and h5repack changes

Description:
h5diff
introduced the following four modes of output:
 Normal mode: print the number of differences found and where they occured
  Report mode: print the above plus the differences
   Verbose mode: print the above plus a list of objects and warnings
    Quiet mode: do not print output (h5diff always returns an exit code of 1 when differences are found)

    h5repack
     added an extra parameter for SZIP filter (coding method)
     the new syntax is
     -f SZIP=<pixels per block,coding>
     (pixels per block is a even number in 2-32 and coding method is 'EC' or 'NN')
     Example of use:
     ./h5repack -i file1 -o file2 -f SZIP=8,NN -v

     updated usage messages, test scripts and files accordingly




Solution:

Platforms tested:
linux
AIX
solaris

Misc. update:
2004-07-20 14:21:03 -05:00
Quincey Koziol
0a29514b9d [svn-r8383] Purpose:
Code cleanup

Description:
    Clean up lots of warnings based on those reported from the SGI compilers
as well as gcc.

Platforms tested:
    SGI O3900, IRIX64 6.5 (Cheryl's SGI machine)
    FreeBSD 4.9 (sleipnir) w/ & w/o parallel
    h5committest
2004-04-17 23:10:09 -05:00
Pedro Vicente Nunes
a70274ecea [svn-r7907] Purpose:
bug fix

Description:
sleipnir was complaining about a missing header declaration

Solution:
added the include

Platforms tested:
linux (small)


Misc. update:
2003-12-03 09:26:51 -05:00
Pedro Vicente Nunes
486c13d307 [svn-r7904] Purpose:
h5diff new features

Description:
added comparison for attributes
adeded comparison for all dataset datatypes
added tests for the new features
changed the output format

Solution:

Platforms tested:
linux
solaris 5.7
IRIX 6.5 (64)

Misc. update:
2003-12-02 18:13:27 -05:00
Pedro Vicente Nunes
46646fc654 [svn-r7792] Purpose:
h5diff new features
bug fix

Description:
implemented the diff for STRING and ARRAY types
fixed a bug. when the datasets are empty, do not try to compare them .
the check empty is made with H5Dgetstorage_size

Solution:

Platforms tested:
linux
solaris 5.7
IRIX

Misc. update:
2003-10-30 09:40:01 -05:00
Pedro Vicente Nunes
9ed099022e [svn-r7791] Purpose:
h5diff new features

Description:
implemented diff for compound types. so far it only compares the integer and float classes
of these compound types. this is done with a new recursive function
that compares datum by datum



Platforms tested:
linux
solaris 2.7
IRIX

Misc. update:
2003-10-29 16:02:53 -05:00
Pedro Vicente Nunes
f2b52777f4 [svn-r7769] Purpose:
moved h5diff "public API" routines to tools/lib folder



Platforms tested:
linux
solaris 2.7
IRIX

Misc. update:
2003-10-28 12:40:05 -05:00