NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
NOTE: The netcdf-hdf
mailing list is no longer active. The list archives are made available for historical reasons.
Hi Ed, > I am having a really weird problem. At a certain point in my code, the > following code hangs in the H5Dcreate call. > > This code works a bunch of times, then, at some point (I'm doing lots > of other HDF stuff, but not with this file), it hangs. > > I don't know what the deal is. > > { > hid_t dsid = 0; > hid_t typeid1 = H5Tcopy(H5T_NATIVE_CHAR); > hid_t plistid1 = H5P_DEFAULT; > hid_t spaceid1 = 0; > hid_t hdfid = 0; > if ((hdfid = H5Fcreate("ccc_test.h5", H5F_ACC_TRUNC, H5P_DEFAULT, > H5P_DEFAULT)) < 0) > return (-1); > if ((spaceid1 = H5Screate(H5S_SCALAR)) < 0) > return (-1); > if ((dsid = H5Dcreate(hdfid, "scaley", > H5T_NATIVE_CHAR, spaceid1, plistid1)) < 0) > return (-1); > if (spaceid1 > 0) H5Sclose(spaceid1); > if (hdfid > 0) H5Fclose(hdfid); > if (dsid > 0) H5Dclose(dsid); > dsid = 0; > } > > When I use Cntl-C to interrupt the program, I get this message: > > Program received signal SIGINT, Interrupt. > 0x400c997a in malloc_consolidate () from /lib/i686/libc.so.6 > > Somehow there is some malloc issue in H5Dcreate. Are you checking all > your malloc returns to see that the memory you are using is really > being allocated? Yes, we are extremely diligent in checking the return values from all the functions we call (although bugs do slip through occasionally). > I can't reproduce this in a short program (yet), but I'll keep trying... It definitely sounds like a memory problem. If you can give me a reasonably short program, I'll run it through purify here and we should have a fix quickly. Quincey >From owner-netcdf-hdf@xxxxxxxxxxxxxxxx 06 2003 Nov -0700 11:35:49 Message-ID: <wrxvfpx2vlm.fsf@xxxxxxxxxxxxxxxxxxxxxxx> Date: 06 Nov 2003 11:35:49 -0700 From: Ed Hartnett <ed@xxxxxxxxxxxxxxxx> In-Reply-To: <200310251310.h9PDAuuu038514@xxxxxxxxxxxxxxxxxxxxxx> To: Quincey Koziol <koziol@xxxxxxxxxxxxx> Subject: Re: how about adding cygwin to the list of supported HDF platforms? Received: (from majordo@localhost) by unidata.ucar.edu (UCAR/Unidata) id hA6IZpDZ014743 for netcdf-hdf-out; Thu, 6 Nov 2003 11:35:51 -0700 (MST) Received: from rodney.unidata.ucar.edu (rodney.unidata.ucar.edu [128.117.140.88]) by unidata.ucar.edu (UCAR/Unidata) with ESMTP id hA6IZoOb014651; Thu, 6 Nov 2003 11:35:50 -0700 (MST) Organization: UCAR/Unidata Keywords: 200311061835.hA6IZoOb014651 Cc: netcdf-hdf@xxxxxxxxxxxxxxxx, Elena Pourmal <epourmal@xxxxxxxxxxxxx> References: <200310251310.h9PDAuuu038514@xxxxxxxxxxxxxxxxxxxxxx> Lines: 49 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: owner-netcdf-hdf@xxxxxxxxxxxxxxxx Precedence: bulk Quincey Koziol <koziol@xxxxxxxxxxxxx> writes: > Hi Ed, > > > How about adding Cygwin to the supported platforms? In terms of > > porting it is almost identical to linux, and lots of people use it, > > and, most importantly, I use it... > We've had requests for supporting Cygwin, but have always felt that we > didn't have the resources to adequately manage a port to it. > > > I'm about to grab the 1.6.1 source and try it, so I'll let you know > > how it comes out. > If it's not too difficult and you can help me get things set up, I > wouldn't > mind getting it working on my Windows machine. > > Quincey Wow, it was super easy! It built almost 100% right out of the box. I had to change one file, perform/iopipe.c. Where it formerly had: #ifdef H5_HAVE_WINSOCK_H #include <Winsock.h> #endif I changed it to: #if defined(_WIN32) #ifdef H5_HAVE_WINSOCK_H #include <Winsock.h> #endif #endif I got this fix from the cygwin patch for 1.6.0. After this change it built and installed. I ran a couple of the example programs and they looked fine. I also did a make check and that worked. So it seems like it would be pretty easy to add Cygwin to your list of supported platforms... Thanks, Ed >From owner-netcdf-hdf@xxxxxxxxxxxxxxxx 07 2003 Nov -0700 10:39:10 Message-ID: <wrxy8usxem9.fsf@xxxxxxxxxxxxxxxxxxxxxxx> Date: 07 Nov 2003 10:39:10 -0700 From: Ed Hartnett <ed@xxxxxxxxxxxxxxxx> In-Reply-To: <200311041705.hA4H53xE039618@xxxxxxxxxxxxxxxxxxxxxx> To: Quincey Koziol <koziol@xxxxxxxxxxxxx> Subject: Re: HDF5 hangs... Received: (from majordo@localhost) by unidata.ucar.edu (UCAR/Unidata) id hA7HdCXO026334 for netcdf-hdf-out; Fri, 7 Nov 2003 10:39:12 -0700 (MST) Received: from rodney.unidata.ucar.edu (rodney.unidata.ucar.edu [128.117.140.88]) by unidata.ucar.edu (UCAR/Unidata) with ESMTP id hA7HdBOb026329; Fri, 7 Nov 2003 10:39:11 -0700 (MST) Organization: UCAR/Unidata Keywords: 200311071739.hA7HdBOb026329 Cc: netcdf-hdf@xxxxxxxxxxxxxxxx References: <200311041705.hA4H53xE039618@xxxxxxxxxxxxxxxxxxxxxx> Lines: 23 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: owner-netcdf-hdf@xxxxxxxxxxxxxxxx Precedence: bulk Quincey Koziol <koziol@xxxxxxxxxxxxx> writes: > > I can't reproduce this in a short program (yet), but I'll keep trying... > It definitely sounds like a memory problem. If you can give me a > reasonably short program, I'll run it through purify here and we should have a > fix quickly. OK, it was all my fault. Yes, I'll say that again, it was all my fault. For my sins I have been wandering the purgatory of memory leak hunting, and finally I found a pointer I was freeing twice. Woops! It caused the HDF5 library to hang only because you guys also are using malloc, and that's just how long it took to fail. Anyway, I did discover a very useful gcc extension! If you set the environment variable MALLOC_CHECK_ to 1, you will get warnings on stderr when you free invalid pointers. (But not, apparently if you are using the debugger - you have to run without it for this.) For punishement I will write 100 times on my whiteboard: "I will not be too free my free calls!" Ed >From owner-netcdf-hdf@xxxxxxxxxxxxxxxx 09 2003 Nov -0700 08:50:08 Message-ID: <wrxy8upmthr.fsf@xxxxxxxxxxxxxxxxxxxxxxx> Date: 09 Nov 2003 08:50:08 -0700 From: Ed Hartnett <ed@xxxxxxxxxxxxxxxx> To: netcdf-hdf@xxxxxxxxxxxxxxxx Subject: Space, the final frontier... Received: (from majordo@localhost) by unidata.ucar.edu (UCAR/Unidata) id hA9FoAY2023829 for netcdf-hdf-out; Sun, 9 Nov 2003 08:50:10 -0700 (MST) Received: from rodney.unidata.ucar.edu (rodney.unidata.ucar.edu [128.117.140.88]) by unidata.ucar.edu (UCAR/Unidata) with ESMTP id hA9Fo8Ob023756 for <netcdf-hdf@xxxxxxxxxxxxxxxx>; Sun, 9 Nov 2003 08:50:09 -0700 (MST) Organization: UCAR/Unidata Keywords: 200311091550.hA9Fo8Ob023756 Lines: 16 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: owner-netcdf-hdf@xxxxxxxxxxxxxxxx Precedence: bulk Here's a snippet of code: /* Create a space for the memory, just big enough to hold the slab we want. Then select it all. */ if ((mem_spaceid = H5Screate_simple(var_info.ndims, count, NULL)) < 0) BAIL(NC_EHDFERR); if (H5Sselect_all(mem_spaceid) < 0) BAIL(NC_EHDFERR); Do I need to select the space, or will it automatically be selected when created? Thanks! Ed
netcdf-hdf
archives: