[Nexus-developers] FW: [Nexus] Bug in NX5getattrinfo ?

Peterson, Peter F. petersonpf at ornl.gov
Tue Feb 22 15:25:47 GMT 2005


Hey guys,

This was posted on the main NeXus mailing list. It was solved some time
ago, but the version with this fixed has not been released. When will it
be?

P^2 

-----Original Message-----
From: nexus-bounces at anl.gov [mailto:nexus-bounces at anl.gov] On Behalf Of
andy gotz
Sent: Tuesday, February 22, 2005 10:09 AM
To: nexus at anl.gov
Subject: [Nexus] Bug in NX5getattrinfo ?

Hi,

I am trying (some will say at last) to generate some synchrotron data in
Nexus format. But I have encountered problems at the installation :

I am running on under Linux SuSE 8.2 distribution on an Intel CPU. Gcc
is version gcc version 3.3 20030226 (prerelease) (SuSE Linux).

I have downloaded and installed HDF5 (recompiled from sources) version
5-1.6.3 with zlib.

I have downloaded and installed the Nexus api. Version 2.0 (I think
because there is no identification in the source code)

When I run napi5_test it gets stuck in an loop. The offending code is :

       while (iRet != 0) {
          iRet = H5Aiterate(pFile->iVID,&idx,attr_info,&iname);

in NX5getattrinfo() function in napi5.c. According to the HDF5
documentation this call can return a negative value in the case of
problems. Because the while loop is not testing for this it never
returns. I don't know why the return value is negative however. I
changed the code while to the following :

       while (iRet >= 0) {
          iRet = H5Aiterate(pFile->iVID,&idx,attr_info,&iname);

There are 2 such loops in this function. Doing this and making some
changes in napi5_test.c to break instead of return I manage to run the
test program. My output is :

crunch:/data/opid11/inhouse/Fable/nexus/nexus % ./napi5_test Number of
global attributes: 4
   NeXus_version = 2.0.0.
   file_name = NXtest.nx5
   HDF5_Version = 1.6.3
   file_time = 2005-02-22 16:11:56+0100
ERROR: Iteration was not successful
Group: entry(NXentry) contains 8 items
   ch_data(4) = NeXus data
   Subgroup: data(NXdata)
   i1_data(20) = 1 2 3 4
   i2_data(22) = 1000 2000 3000 4000
   i4_data(24) = 1000000 2000000 3000000 4000000
   r4_data(5)
      1.000000 2.000000 3.000000 4.000000
      5.000000 6.000000 7.000000 8.000000
      9.000000 10.000000 11.000000 12.000000
      13.000000 14.000000 15.000000 16.000000
      17.000000 18.000000 19.000000 20.000000
   r8_data(6)
      1.000000 2.000000 3.000000 4.000000
      5.000000 6.000000 7.000000 8.000000
      9.000000 10.000000 11.000000 12.000000
      13.000000 14.000000 15.000000 16.000000
      17.000000 18.000000 19.000000 20.000000
      Number of attributes : 3
         ch_attribute : NeXus
         i4_attribute : 42
         r4_attribute : 3.141593
ERROR: Iteration was not successful

What is the problem? Can anyone help me find my bug? Can I use the nexus
library as it is?

Thanks

Andy




_______________________________________________
NeXus mailing list
NeXus at anl.gov
http://www.neutron.anl.gov/mailman/listinfo/nexus





More information about the NeXus-developers mailing list